Protection de plusieurs feuilles

  • Initiateur de la discussion Initiateur de la discussion f1f00
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

f1f00

XLDnaute Occasionnel
Bonjour,

j'aimerais protéger plusieurs feuille en même temps avec le mot de passe et aussi oter la protection de toute ces feuilles en même temps.
Les feuilles se trouvent dans des classeurs différents mais si c'est impossible a travers plusieurs classeurs peut être peut on le faire par classeur?
existe t'il une macro qui permette cela??

Merci d'avance
 
Re : Protection de plusieurs feuilles

slt

Q1 : veux-tu protéger/déprotéger toutes tes feuilles dans les classeurs ?
( en tout cas l'intégralité des feuilles protégées )
Q2 : veux-tu protéger/déprotéger tous les classeurs ouverts ?

@+
 
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.
 
Re : Protection de plusieurs feuilles

Bonjour f1f00,

Je ne connais pas de macro toute faite, mais c'est facilement réalisable.

Sans fichier d'exemple, je ne peux que te proposer une piste : protéger/déprotéger chaque feuille concernée au sein d'une boucle.

Ex :

Code:
Sub Protéger()
For n=1 to ...
  Sheets(n).Protect MotdePasse
Next
End Sub

Sub DéProtéger()
For n=1 to ...
  Sheets(n).UnProtect MotdePasse
Next
End Sub

Remplaces MotdePasse par ton mot de passe voulu, écrit entre guillemets.

Dans ces 2 macros, on utilise les index des feuilles, celà oblige à traiter une suite de feuilles dans leur ordre de création.

Une autre possibilité consiste à transmettre le nom (ou l'index) de la feuille en paramètres à la macro.

Ex :

Code:
Sub Protéger(ByVal Nom As String)
Sheets(Nom).Protect MotdePasse
End Sub

Sub DéProtéger(ByVal Nom As String)
Sheets(Nom).UnProtect MotdePasse
End Sub
Dans ce cas, tu dois spécifier la référence de la feuille dans l'appel de la macro.

Ex :

Macro Protection :
Protéger "Nom1" ' Nom1 = nom de la 1ère feuille
Protéger "Nom2" ' Nom2 = nom de la 2ème feuille, etc...
Protéger ...

Macro DéProtection :
DéProtéger "Nom1"
DéProtéger "Nom2"
DéProtéger ...

Espérant t'avoir aidé.

Cordialement.
 
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
 
Dernière édition:
Re : Protection de plusieurs feuilles

Merci tora merci papou
Le problème papou c'est que les classeurs sont appellés à changer de place donc il faut pouvoir modifier les noms facilement sous excel.

Tora ta solution est douvrir en même temps tous les classeurs que l'on doit protéger est ce bien ca??
C'est une bonne solution je pense. Jessaie ca demain

Encore merci
 
Re : Protection de plusieurs feuilles

Merci tora merci papou
Le problème papou c'est que les classeurs sont appellés à changer de place donc il faut pouvoir modifier les noms facilement sous excel.

Tora ta solution est douvrir en même temps tous les classeurs que l'on doit protéger est ce bien ca??
C'est une bonne solution je pense. Jessaie ca demain

Encore merci

En fait XL va regarder les classeurs ouverts quand tu lance ta macro
et rechercher celui QuI se nomme selon le paramètre indiqué dans
l' appel de : P_U(" nom du classeur a trouver ")

derniere modif : ( donc utilise cela pour tes tests )

________________________________________________________________

Sub Appel_Sub()

Call P_U(InputBox("Taper le nom du classeur a traiter SVP :" & vbCrLf), False)

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 Replace(UCase(Cl.Name), " ", "") = Replace(UCase(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
 
Re : Protection de plusieurs feuilles

Bonjour f1f00 , bonjour à tous

Oui c'est cela.

Dans l'exemple, le dossier se nommait popo

Il suffit de mettre de le nom de ton dossier contenant les classeurs.
(en changeant la valeur de MyDir dans le code VBA)

J'ai testé ce code sous Excel 2000, je ne sais s'il fonctionne avec les versions supérieurs notamment Excel 2007.

Je conseille de travailler sur des copies pour tester des macros de protection/déprotection.

(Afin d'éviter de bloquer un classeur important)

Dans l'exemple le mot de passe utilisé est : ****

PS: la macro protège le classeur et les feuilles avec le même mot de passe.
 
Dernière édition:
Re : Protection de plusieurs feuilles

vba peut on imaginer que la macro aille chercher le nom du dossier dans le classeur excel. CAD dans une cellule on entre le chemin des classeurs que la macro doit potéger sacahnt que cela peut changer
 
Re : Protection de plusieurs feuilles

Re


f1f00: une question: quel est ton niveau de connaissances en VBA ?
Car le code proposé peut être adapté selon les besoins.
(Il permet de chercher dans les sous-répertoires, si l'on modifie le code en conséquence)
Mais si tu ne comprends pas comment fonctionne le code.
Tu risques d'avoir des surprises en cas de problème.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
325
Réponses
17
Affichages
912
Réponses
2
Affichages
269
Retour