XL 2016 Protéger déprotéger classeur avec bouton - Bug

  • Initiateur de la discussion Initiateur de la discussion ALE37
  • 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 !

ALE37

XLDnaute Junior
Bonjour le forum, j'ai un bug sur l'utilisation de cette macro qui consiste à protéger et déprotéger à l'aide d'un bouton un classeur.
La protection fonctionne mais pas la déprotection. D'avance merci de votre aide.

Sub protect_classeur()
Application.ScreenUpdating = False
MDP = InputBox("Entrer mot de passe :", "Activation de la protection des feuilles")
If MDP <> "toto" Then
MsgBox "Mot de passe incorrect", vbCritical + vbOKOnly, "Erreur"
Exit Sub
End If
ThisWorkbook.Unprotect "toto"
With Worksheets("BD")
.Visible = xlSheetVisible
.Activate
.Unprotect "toto"
End With
ThisWorkbook.Protect "toto"
End Sub
 
Solution
Bonsoir,

Je pense que ta macro déprotège et protège le classeur à la suite, donc tu as l'impression que seul la protection fonctionne mais la déprotection fonctionne aussi...

En ajoutant un test pour savoir si le classeur est protégé et faire l'action inverse devrait fonctionner :
VB:
Sub protect_classeur()
Application.ScreenUpdating = False
MDP = InputBox("Entrer mot de passe :", "Activation de la protection des feuilles")
If MDP <> "toto" Then
MsgBox "Mot de passe incorrect", vbCritical + vbOKOnly, "Erreur"
Exit Sub
End If
If ThisWorkbook.ProtectStructure Or ThisWorkbook.ProtectWindows Then
ThisWorkbook.Unprotect "toto"
With Worksheets("BD")
.Visible = xlSheetVisible
.Activate
.Unprotect "toto"
End With
else
ThisWorkbook.Protect...
Bonsoir,

Je pense que ta macro déprotège et protège le classeur à la suite, donc tu as l'impression que seul la protection fonctionne mais la déprotection fonctionne aussi...

En ajoutant un test pour savoir si le classeur est protégé et faire l'action inverse devrait fonctionner :
VB:
Sub protect_classeur()
Application.ScreenUpdating = False
MDP = InputBox("Entrer mot de passe :", "Activation de la protection des feuilles")
If MDP <> "toto" Then
MsgBox "Mot de passe incorrect", vbCritical + vbOKOnly, "Erreur"
Exit Sub
End If
If ThisWorkbook.ProtectStructure Or ThisWorkbook.ProtectWindows Then
ThisWorkbook.Unprotect "toto"
With Worksheets("BD")
.Visible = xlSheetVisible
.Activate
.Unprotect "toto"
End With
else
ThisWorkbook.Protect "toto"
End If
End Sub

A essayer.
BI4ol
 
Bonsoir,

Je pense que ta macro déprotège et protège le classeur à la suite, donc tu as l'impression que seul la protection fonctionne mais la déprotection fonctionne aussi...

En ajoutant un test pour savoir si le classeur est protégé et faire l'action inverse devrait fonctionner :
VB:
Sub protect_classeur()
Application.ScreenUpdating = False
MDP = InputBox("Entrer mot de passe :", "Activation de la protection des feuilles")
If MDP <> "toto" Then
MsgBox "Mot de passe incorrect", vbCritical + vbOKOnly, "Erreur"
Exit Sub
End If
If ThisWorkbook.ProtectStructure Or ThisWorkbook.ProtectWindows Then
ThisWorkbook.Unprotect "toto"
With Worksheets("BD")
.Visible = xlSheetVisible
.Activate
.Unprotect "toto"
End With
else
ThisWorkbook.Protect "toto"
End If
End Sub

A essayer.
BI4ol
Bonsoir,

Je pense que ta macro déprotège et protège le classeur à la suite, donc tu as l'impression que seul la protection fonctionne mais la déprotection fonctionne aussi...

En ajoutant un test pour savoir si le classeur est protégé et faire l'action inverse devrait fonctionner :
VB:
Sub protect_classeur()
Application.ScreenUpdating = False
MDP = InputBox("Entrer mot de passe :", "Activation de la protection des feuilles")
If MDP <> "toto" Then
MsgBox "Mot de passe incorrect", vbCritical + vbOKOnly, "Erreur"
Exit Sub
End If
If ThisWorkbook.ProtectStructure Or ThisWorkbook.ProtectWindows Then
ThisWorkbook.Unprotect "toto"
With Worksheets("BD")
.Visible = xlSheetVisible
.Activate
.Unprotect "toto"
End With
else
ThisWorkbook.Protect "toto"
End If
End Sub

A essayer.
BI4ol
Bonsoir Bl4ol, la solution est Nickel! Merci pour ton aide.
 
- 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
16
Affichages
1 K
Réponses
5
Affichages
807
Compte Supprimé 979
C
Réponses
2
Affichages
546
Réponses
5
Affichages
834
Réponses
5
Affichages
1 K
  • Question Question
Réponses
10
Affichages
904
Retour