[resolu] Protection/déprotection par VBA

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 !

cissou69

XLDnaute Junior
Bonjour,

Le sujet a été largement abordé sur le forum mais je n'ai pas trouvé la réponse exacte à mon problème.
Je souhaite simplifier la tache de protection en utilisant une macro qui protège toutes les feuilles en un clic. Le mot de passe est écrit dans le code.
Pour la déprotection de toutes les feuilles en simultanée, je souhaiterais qu'une boite de dialogue apparaisse une seule fois et déprotège tous les onglets.

Aujourd'hui, j'ai essayé le code ci-dessous mais la boite de dialogue apparait pour chaque feuille.

S'il est possible avec un seul même bouton de protéger/déprotéger toutes les feuilles, je suis aussi preneur.

Code:
Private Sub CommandButton1_Click()

Dim s As Worksheet

For Each s In Worksheets
    s.Unprotect
Next s

End Sub

Merci d'avance

Cyril
 
Dernière édition:
Re : Protection/déprotection par VBA

Bonjour,

essaye ainsi :

Code:
Private Sub CommandButton1_Click()

Dim s As Worksheet

For Each s In Worksheets
    s.Unprotect "toto"
Next s

End Sub

déprotège tes feuille en envoyant le mot de passe, en l'occurence "toto"...

bon après midi
@+
 
Re : Protection/déprotection par VBA

Re,

regarde ceci, avec une "inputbox", mais le code est dans le code... donc protége également le projet vba, dans l'éditeur vba => barre de menu => Outils => propriété de vbaproject => onglet "protection" tu coches "verouiller le projet pour l'affichage" et tu mets un mot de passe...

Code:
Dim s As Worksheet, m As Variant
m = InputBox("Mot de passe ?")
If m <> "toto" Then Exit Sub
For Each s In Worksheets
    s.Unprotect m
Next s
 
Re : Protection/déprotection par VBA

Re,

essaye ceci :
Code:
Private Sub CommandButton1_Click()
Dim s As Worksheet, m As Variant
m = InputBox("Mot de passe ?")
If m <> "toto" Then Exit Sub
For Each s In Worksheets
    If s.ProtectContents Then s.Unprotect m Else s.Protect m
Next s
End Sub
 
Re : Protection/déprotection par VBA

Désolé, je n'ai pas pu revenir vendredi soir et répondre.
Merci Pierrot pour ce "if" qui me manquait...

Cependant, j'ai intégré ce code dans un Userform avec tout ce qu'il faut.

Merci encore,
Bonne journée,

Cissou
 
- 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
2
Affichages
599
D
  • Question Question
Réponses
0
Affichages
678
Deleted member 211067
D
F
Réponses
1
Affichages
3 K
M
Retour