Macro et classeur protégé

Cedpilou -  
Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je travaille en ce moment sur un classeur excel avec de nombreuses feuilles masquées et qui s'affichent en fonction de bouton qui permettent d'y accéder.
Tout fonctionne correctement sauf quand je protège le classeur, car il n'y a pas moyen de démasquer une feuille lorsque le classeur est protégé.
Existerait-il un code qui permettrait a chaque exécution d'une macro de déverrouiller puis de verrouiller le classeur ?

Je ne peux malheureusement vous joindre aucun fichier car c'est dans le cadre du travail.

Merci d'avance

Cédric

3 réponses

  1. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Peut-être une solution par là !

    1
    1. Cedpilou
       
      Merci, mais je n'ai pas trouvé une réponse à ma question. Pour l'instant j'ai donc crée une procédure que j'ai appelée dans chacune de mes macros, un peu long du coup.
      0
  2. g Messages postés 1285 Statut Membre 578
     
    Bonjour,

    Pour ôter la protection:

    Sub SupProtec()
    'Supprime la protection de toutes les feuilles
    For i = 1 To Worksheets.Count
    Worksheets(i).Unprotect Password:=""
    Next
    End Sub

    Pour mettre la protection:

    Sub MetProtec()
    'Protège toutes les feuilles
    For i = 1 To Worksheets.Count
    Worksheets(i).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=""
    Next
    End Sub

    Si tu as un mot de passe tu le mets après Password:="ici"

    Tu mets ces codes dans un module standard et les commandes de renvoi dans le code principal.

    Cordialement.
    0
    1. Cedpilou
       
      Merci, pour mettre et enlever la protection du classeur je n'ai aucun problème.

      Mais j'ai un grand nombre de macro, donc est-il possible de créer une procédure dans le thisWorkbook qui permettrais de déverrouiller le classeur a chaque début de macro et de le verrouiller à chaque fin de macro ?
      Sans devoir mettre un code dans chaque macro.

      Cordialement,
      0
  3. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    C'est dommage car tout y est, y compris le passage obligatoire par [ThisWorkbook].
    Pour vous il suffit d'intégrer le dialogue d'identification directement dans le code [Private Sub Workbook_Open()].

    0