macro protection par vba

  • Initiateur de la discussion Jean
  • Date de début
J

Jean

Guest
Bonjour à tous

J'ai un fichier ayant 150 feuilles (chaque feuille ayant un nom de clients).

J'ai verrouillées plusieurs celulles pour éviter l'effacement de certaines formules et déverrouillées quelques cellules afin de pouvoir y effectuer des saisies.

Je suis à la recherche d'une solution me permettant de déprotéger mes feuilles au début de l'exécution des macros et de les reprotéger à la fin.

Est-il possible d'utiliser une variable afin d'éviter de nommer chacune des 150 feuilles dans la procédure ?

Merci d'avance pour votre aide et vos conseils.

Jean
 
B

Bernard

Guest
Bonsoir Jean

Une macro qui déprotège, commande la macro de travail proprement dite puis reprotège successivement toutes les feuilles du classeur.

1- Le mot de passe est incorporé à la macro mais il peut être modifié ;
2- La commande de la macro d'exécution de la saisie est à placer comme dit dans la macro;
2- Elle passe toutes les feuilles en revue. Pour sauter certaines feuilles, les placer en début et débuter la valeur i à la valeur du rang de la première feuille à traiter.

Sub DeproMacroRepro()
Dim i As Byte

'Passer les feuilles les unes après les autres
For i = 1 To Sheets.Count
Sheets(i).Activate
' Deprotection de la feuille active, le mot de passe est "pass"
With ActiveSheet
.EnableSelection = xlNoRestrictions
.Unprotect Password:="pass"
End With

'Mettre ici la commande de la Macro de saisie !

' Reprotection de la feuille active
With ActiveSheet
.EnableSelection = xlNoSelection
.Protect Password:="pass", Contents:=True, UserInterfaceOnly:=True, Scenarios:=True
End With
Next i
End Sub

Cordialement

Bernard
 

Discussions similaires

Statistiques des forums

Discussions
312 236
Messages
2 086 481
Membres
103 232
dernier inscrit
logan035