Protection de feuilles par macro
Bonjour le forum
Je suis de retour avec un nouveau problème
Je souhaite protéger plus de 100 feuilles sur un classeur excel, et chaque feuilles du classeur dispose de plus ou moins une protection différente !
Pour protéger toutes mes feuilles d'un coup j'utilise la macro suivante :
eSub Protec()
For I = 1 To Sheets.Count
Sheets(I).Protect Password:="******"
Next
End Sub
Sub UnProtect()
For I = 1 To Sheets.Count
Sheets(I).Unprotect Password:="******"
Next
End SubMais voila, le problème viens du fait que ma macro ne protège correctement que la feuille où le bouton de verrouillage / déverrouillage est présent !
Pour toutes les pages restantes la protection se remet par défaut : (image png en lien)
Une idée pour que la protection de la page reste ?
Merci d'avance si vous avez des idées !
Cordialement
Ice
Bonjour,
Je ne comprends pas tout, mais le code ci-dessous fonctionne parfaitement avec les options de base définies pour la protection des feuilles (soient les sélections des cellules déverrouillées & verrouillées).
' Module 1
Option Explicit
Option Private Module
Dim i As Byte
Public Sub Proteger()
For i = 1 To Sheets.Count
Worksheets(i).Protect Password:="jeaneric"
Next
End Sub
Public Sub Deproteger()
For i = 1 To Sheets.Count
Worksheets(i).UnProtect Password:="jeaneric"
Next
End SubBonjour Jean-Eric,
Mhhh pas simple d'expliquer clairement, pour faire simple toutes les feuilles n'ont pas les mêmes paramètres de verrouillage.
Une d'entre elle va par exemple avoir la sélection de cellule verrouiller ou dé-verrouiller comme par défaut, mais une autre va avoir l'utilisation des tableaux croisée dynamique, une autre va utiliser les insertions de colonnes ...
Et quand j'utilise la macro de verrouillage / déverrouillage, mes feuilles ne gardes en paramètres pour la protection seulement les valeurs par défauts .
Or je ne veux pas qu'elles utilisent les options de base définies mais les options que j’attribue pour chaque pages.
En grattant j'ai trouver que si je rajoute des formules du genre :
AllowFormattingCells:=True,
AllowFormattingRows:=True
Les paramètres des TOUTES mes pages sont modifiées, et je ne désire pas que tout change mais qu'elle utilises simplement les options que j'utilise quand je verrouille manuellement chacune d'entre elle.
Si je ne suis toujours pas très clair j'essaie de faire un post avec plusieurs images avant -> après pour que cela ressorte mieux.
Avec des images.
Je prend au hasard 4 feuilles sur un de mes fichiers :
Chaque fichier dispose d'une protection spécifique mais il vont tous utiliser la protection de base si je me sert de la macro, les protections sont ''oubliée''.
Et comme je dispose d'un nombre important de feuille je ne pense pas que traiter les feuilles au cas par cas puisse être envisageable
Pour cela que je me demandé si il n'y avais pas une macro qui garde en mémoire mes paramètres !
Merci encore
Cordialement
Ice
|
|
| Feuille 4 - 3 - 2 - Défaut