Protection de feuilles avec MDP dans macro

Résolu/Fermé
Playa2 - 30 janv. 2013 à 11:57
 Playa2 - 30 janv. 2013 à 14:40
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.
A voir également:

6 réponses

f894009 Messages postés 17217 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 décembre 2024 1 712
30 janv. 2013 à 12:31
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
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
f894009 Messages postés 17217 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 décembre 2024 1 712
30 janv. 2013 à 14:24
Re,

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

Se rappeler du MPD!!! pour plus tard
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f894009 Messages postés 17217 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 décembre 2024 1 712
30 janv. 2013 à 14:37
Re,

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

Merci beaucoup et bonne journée...
0