Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    Aide Macro pour : deprotection toutes feuilles + filtre spécial + protection feuilles
    Bonjour à tous,
    après des dizaines d'essais je ne vois que les âmes charitables du forum qui pourraient m'aider.

    je souhaiterais en une seule macro
    - déprotéger tous mes onglets sans saisir le mot de passe
    - selon la valeur entrée en A1 "FICHE INDIV" effectuer un filtre spécial sur le tableau dans onglet "BASE GENERALE"
    - copier le résultat en A6 "FICHE INDIV"
    - protéger toutes les feuilles sans saisir le mot de passe


    Ci joint un fichier exemple

  2. #2
    Membre actif
    deprotection toutes feuilles
    Bonjour,

    Voici pour la protection et déprotection des feuilles :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Main
    Dim oDoc As Object
    Dim i As Integer
    oDoc=ThisComponent
    'Je boucle sur toutes les feuilles du classeur
    For i = 1 to oDoc.Sheets.Count
     
    'Protection
     oDoc.Sheets(i-1).Protect("MonMotDePasse") 
     
     'Enlever la protection
     oDoc.Sheets(i-1).unProtect("MonMotDePasse")
    Next
    End Sub


    Pour la partie filtre, j'ai pas compris ce que tu cherches à faire.
    Cordialement
    Libre Office Version: 6.4.6.2 (x64)
    Windows 10

  3. #3
    Candidat au Club
    Bonjour Mobydick_62 et merci pour ta propo qui me fait déjà bien avancer.
    Concernant le filtre :
    je souhaite après avoir entré manuellement le n° de sociétaire en A1 et validé par "Entrée"
    que la déprotection s'opère, puis que les lignes du tableau dans onglet "BASE GENERALE" (qui est la base de données) correspondant au n° de sociétaire saisi soient
    copiées SUR la cellule A6 sur FICH INDIV
    Et enfin que tous les onglets se reprotègent

    exemple 1 si je rentre 402 en A1

    doivent alors apparaitre en A6 les lignes suivantes

    FAMILLE 26/05/17 42 LYON
    ENFANTS 11/12/17 36 LYON

    exemple 2 si je rentre 2587 en A1

    doivent alors apparaitre en A6 les lignes suivantes

    SPORT 25/02/18 33 PARIS
    FAMILLE 12/04/19 19 PARIS
    ACTU 12/04/20 10 PARIS

    d'où la nécessité de déprotéger d'abord
    exécuter le filtrage et copie
    puis reprotéger


  4. #4
    Membre actif
    deprotection toutes feuilles + filtre spécial + protection feuilles
    Bonjour,

    En pièce jointe le fichier avec les macros.

    Un écouteur a été ajouté sur la cellule A1 afin de lancer la macro si elle a été modifiée après la touche Entrée.



    Cordialement
    Libre Office Version: 6.4.6.2 (x64)
    Windows 10

  5. #5
    Candidat au Club
    PROBLEMES
    Bjr Mobydick_62 et merci infiniment d'avoir passé du temps sur mon problème de macro.

    j'ai donc testé ton fichier avec ta macro, lorsque je souhaite l'adapter sur mon fichier professionnel, malheureusement il ne fonctionne pas.

    peut on isoler les macros afin de les tester une par une afin de déterminer sur quelle zone se situe mon erreur ?

  6. #6
    Membre actif
    Bonjour,

    Le problème est que tu ne m'expliques pas ce qui ne fonctionne pas.

    As tu relié une des macros à l’événement feuille ? En faisant ceci :
    - Déprotéger la feuille.
    - Clic droit sur l'onglet "FICH INDIV" et sélectionner "Événement de la feuille".
    - Dans la boite qui s'affiche sélectionner "Contenu modifié"
    - Cliquer sur le bouton "Macro"
    - et aller chercher la macro : "Cellule_Modifiee"



    Aussi la propriété de la cellule A1 est t'elle "Déprotégée" car lorsque la macro protège les feuilles, la cellule sera aussi protégée (donc non accessible).

    A part cela je ne vois pas ce qui pourrait "clocher".

    Essayes et reviens vers moi si problème
    Cordialement
    Libre Office Version: 6.4.6.2 (x64)
    Windows 10

  7. #7
    Candidat au Club
    ON Y EST PRESQUE
    Bonjour Mobydick,
    effectivement j'ai relié et cela fonctionne

    T'es au top

    Toutefois j'ai une info dans ma base de données qui est un lien hypertexte permettant d'ouvrir un document PDF.
    l'info de la cellule se copie bien mais l'hyperlien disparait, est il possible de le conserver ?

    il s'agit de cette ligne dans la macro (adaptée à mon tableau réel) :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    oFeuilleIndiv.getCellRangeByName("F" & lig).String = oFeuilleBase.getCellRangeByName("G" & i).String

  8. #8
    Membre actif
    Bonjour,

    J'ai modifié ton fichier exemple. Dans la feuille BASE GENERALE j'ai ajouté une colonne avec des hyperlien "bidons"

    La macro copie et insère les liens dans ta feuille FICHE INDIV (voir le code)

    cordialement

    Libre Office Version: 6.4.6.2 (x64)
    Windows 10

  9. #9
    Candidat au Club
    MERCI INFINIMENT
    Mobydick_62 UN ENORME MERCI pour ton partage de connaissances généreux et hyper efficace.

    cela fonctionne parfaitement et pourtant au départ je n'y croyais guère...

    Je te souhaite une très bonne journée et au plaisir de nous recroiser

###raw>template_hook.ano_emploi###