Protection d'une série de feuilles
Quelquefois, on aimerait bien pouvoir protéger ou déprotéger toute une série de feuilles d’un seul coup. Pour atteindre cet objectif, une macro est bien évidemment nécessaire.
Nous avons à cet effet une feuille appelée « Protection », à laquelle nous aurons logiquement attribué le statut « Very hidden », dans laquelle apparaît la liste des feuilles du classeur avec en colonne B le statut souhaité et, en colonne C, le mot de passe.
La liste des feuilles du classeur a pu être obtenue grâce à la solution proposée le 20 juin 2009 dans ce blog.
La macro reproduite ci-dessous et activée par le bouton « Protection » fait le travail !
Remarque – L’article du 24 juin vous permettra de comprendre pourquoi nous affichons le message « Faites un recalcul complet ! » quand le nom de la feuille active n’est pas correct, donc quand la liste créée en colonne A de la feuille « Protection » n’est pas actualisée.
Nous avons à cet effet une feuille appelée « Protection », à laquelle nous aurons logiquement attribué le statut « Very hidden », dans laquelle apparaît la liste des feuilles du classeur avec en colonne B le statut souhaité et, en colonne C, le mot de passe.
La liste des feuilles du classeur a pu être obtenue grâce à la solution proposée le 20 juin 2009 dans ce blog.
La macro reproduite ci-dessous et activée par le bouton « Protection » fait le travail !
Remarque – L’article du 24 juin vous permettra de comprendre pourquoi nous affichons le message « Faites un recalcul complet ! » quand le nom de la feuille active n’est pas correct, donc quand la liste créée en colonne A de la feuille « Protection » n’est pas actualisée.
1 Commentaire(s):
Bonjour,
Votre macro est intéressante pour moi dans le fait qu'elle me permet de protéger toutes les feuilles d'un classeur par le clic sur un seul bouton.
Lorsque je lance cette macro (par un clic donc) les feuilles de mon classeur sont bien verrouillées car la valeur de la colonne B est "oui".
Cependant après avoir protéger les feuilles lorsque je change la valeur par "non" et que je clique sur le bouton les feuilles ne sont pas déprotégées.
Est-ce que c'est normal ou bien est-ce que j'ai raté quelque chose ?
Merci.
N.B Pour pouvoir déprotéger les feuilles j'ai créé un 2eme bouton avec pour code
Private Sub CommandButton2_Click()
Dim I As Integer
For I = 1 To Sheets.Count
Sheets(I).Activate
If Sheets(I).Name = "protection"_ Then GoTo Fin
If ActiveSheet.Name <>_ Worksheets("protection").Range("A"_ & I + 1).Value Then MsgBox "Faites un recalcul complet !": Exit Sub
If_
Worksheets("protection").Range("B"_ & I + 1).Value = "non" Then
ActiveSheet.Unprotect_
(Worksheets("protection").Range("C" & I + 1).Value)
End If
Fin:
Next I
End Sub
By Pierre, sur 9:34 AM
Enregistrer un commentaire
<< Accueil