1 pièce(s) jointe(s)
Problème protection par mot de passe en VBA
Bonjour à tous,
Je suis en train de créer un formulaire qui permet d'accéder à une feuille spécifique du fichier en fonction de choix fait dans des listbox. Une fois le choix effectuer un bouton apparaît et il permet d'ouvrir la feuille concernée.
A l'ouverture, je peux choisir :
- un mode utilisateur pour lequel tous les onglets sont masqués et chaque feuille protégé (pour que seules les cellules à remplir soient modifiables). Pour accéder à chaque feuille, il faut faire une selection dans un userform.
- un mode administrateur, qui déverrouille chaque feuille et fait apparaître tous les onglets.
Mon problème est le suivant.
En mode utilisateur (tout verrouillé), pour pouvoir accéder aux feuilles masquées, je dois déverrouiller la feuille concernée en début de procédure et la reverrouiller en fin de procédure. Cependant, une erreur survient:
Pièce jointe 342963
et le Debug m'amène sur la ligne de déverrouillage.
Voici le code en question:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
Private Sub CommandButton1_Click()
Dim Mdp As String
Mdp = "Mon_Mot_De_Passe"
'Ouvre la feuille à remplir
If Label2.Caption <> "" Then
ThisWorkbook.Sheets(Label2.Caption).UnProtect Mdp 'devrait déverrouiller la feuille sélectionner
ThisWorkbook.Sheets(Label2.Caption).Visible = True
ThisWorkbook.Sheets(Label2.Caption).Select
UserForm1.Hide
ActiveSheet.Range("c4").Select
ThisWorkbook.Sheets(Label2.Caption).Protect Mdp 'devrait reverrouiller la feuille une fois la procédure terminée
End If
End Sub |
Sachant que j'utilise Mdp pour verrouiller et déverrouiller, je ne comprends pas qu'il considère que le mot de passe est incorrect :?
De plus, une fois mon document verrouillé par VBA, si j'essaye de déverrouiller une feuille manuellement en passant par le bandeau Excel, en utilisant "Mon_Mot_De_Passe", ça ne fonctionne pas...
Quelqu'un saurait-il m'expliquer d'où vient mon erreur?
D'avance merci pour votre aide!