Re : Protection de plusieurs feuilles
Je veux protéger toutes les feuilles dans les classeurs mais je veux pouvoir définir quels classeurs choisir. En fait j'ai plusieurs entreprises qui ont plusieurs exercices comptables chacune. En choisissant le nom de l'entreprise et l'année de l'exercice comptable je veux que ca protège tous les classeurs du dossier sachant qu'il y a encore des sous dossiers dans l'arborescence du genre:
C:/.../Entreprise A/2009/CLIENT/
C:/.../Entreprise A/2009/CLIENT/BANQUE/
C:/.../Entreprise A/2009/CLIENT/BANQUE/BANQUE 1/
C:/.../Entreprise A/2009/CLIENT/BANQUE/BANQUE 2/
C:/.../Entreprise A/2009/CLIENT/BANQUE/BANQUE 3/
C:/.../Entreprise A/2009/CABINET/
Voila les chenmins de tous les classeurs il y a plusieurs classeurs dans chaque chemin et cette arborescence est valable pour chaque entreprise et chaque année d'exercice.
Bon voila ma version de la chose :
1/ ma sub Appel lance ma sub Protect_Unprotect (P_U)
avec comme outil de travail (arguments) le nom du classeur
a traiter ( classeur qui doit etre ouvert ) et True ou False
pour indiquer Proteger/Deproteger. True par defaut donc
tu mets a False seulement pour enlever une protection.
( et bien sur tu remplace password par ton mot de passe )
Cela convient-il a ton souci ?
@+
PS : petite misa à jour faite
_________________________________________________
Sub Appel()
Call P_U("Clients") ' ici protection
Call P_U("Clients", False) ' ici protection enlevée
End Sub
_________________________________________________
Sub P_U(QuI As String, Optional ProtegeR As Boolean = True)
Dim Cl As Workbook
Dim Fe As Worksheet
Dim OK As Boolean: OK = False
For Each Cl In Application.Workbooks
If Cl.Name = QuI Then
For Each Fe In Cl.Worksheets
If ProtegeR Then Fe.Protect "password" Else Fe.Unprotect "password"
Next Fe
OK = True
Exit For
End If
Next Cl
If OK = False Then MsgBox "Nom de Classeur Inconnu, Macro Non Aboutie", vbCritical, "Protéger/Déprotéger"
End Sub