Protection de feuilles avec MDP dans macro

Résolu
Playa2 -  
 Playa2 -
Bonjour,

Je voudrais protéger plusieures feuilles d'un fichier excel par un mot de passe ; là pas de problème mais lorsque je lance la macro (qui s'applique sur toutes les feuilles), ce mot de passe m'est demandé à chaque feuille...
Il me faut donc enlever la protection au début de la macro puis la remettre à la fin de celle-ci.

Le problème que je recontre est le suivant, lorsque je tape dans la macro ci-dessous :
ActiveSheet.Protect ("XXX") DrawingObjects:=True
J'ai le message : Erreur de compilation - attendu : fin d'instruction

macro :
Private Sub Workbook_Open()

ActiveSheet.Unprotect
For Each work In Worksheets
work.Activate
With work
If work.Name <> "Accueil" And work.Name <> "MDG" Then
Range("AK1").Select
ActiveSheet.Unprotect
selection.AutoFilter
selection.AutoFilter Field:=6, Criteria1:="1"
selection.AutoFilter Field:=4, Criteria1:="=A", Operator:=xlOr, _
Criteria2:="<>0"
End If
End With
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowSorting:=True, _
AllowFiltering:=True
Range("f5").Select
Next work
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowSorting:=True, _
AllowFiltering:=True
End Sub

Quelqu'un saurait-il quel est le problème et comment y remédier ????

D'avance merci de votre aide.

6 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Il faudra penser a proteger le code par MDP, sinon pas difficile de trouver le MDP protection feuilles.

    Private Sub Workbook_Open()
    Dim work As Worksheet
    
    'attention MDP A Changer !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    ActiveSheet.Unprotect Password:="Toto"
    For Each work In Worksheets
     ' work.Activate
      With work
        If work.Name <> "Accueil" And work.Name <> "MDG" Then
          Range("AK1").Select
          .Unprotect Password:="Toto"
          Selection.AutoFilter
          Selection.AutoFilter Field:=6, Criteria1:="1"
         Selection.AutoFilter Field:=4, Criteria1:="=A", Operator:=xlOr, Criteria2:="<>0"
        End If
      End With
       work.Protect Password:="Toto"
      Range("f5").Select
    Next work
    ActiveSheet.Protect Password:="Toto"
    End Sub


    Bonne suite
    1
  2. Playa2
     
    Ok super, ça fonctionne parfaitement !!!

    Cpendant comment fais-tu pour protéger le code par MDP ???

    Désolée d'abuser

    D'avance merci
    0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    ouvrir VBA
    click droit sur VBAproject en haut a gauche
    Propriete cd VBAProject
    Onglet protection

    Se rappeler du MPD!!! pour plus tard
    0
  4. Playa2
     
    OK merci ; ça je connaissais mais je pensais qu'on pouvait "cacher" le MDP dans la macro.

    En effet, en créant une nouvelle macro "bidon", on a accès à toutes les macros exisitantes malgrés la protection vba ; du coup on peut aller voir le MDP...

    N'y a t-il pas la possibilité de masquer ou de modifier le format texte (en même couleur que le fond de page par exemple ) dans la macro ????
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    dans l'onglet protection, il faut cocher verrouiller le projet pour l'affchage!!!!!!!!!!!!!
    0
  7. Playa2
     
    Ok nickel !!!

    Merci beaucoup et bonne journée...
    0