VBA : Créer un fichier avec certains onglets comportant des mots de passe

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 !

Richard33

XLDnaute Nouveau
Bonjour,

En tant normal, j'arrive plus ou moins à m'en sortir en lisant des astuces sur des codes de VBA déjà existant pour l'adapter à ma situation, mais la, après plusieurs lectures sur le sujet, je dois reconnaitre que cela dépasse mes compétences (ceci dit, je suis mauvais en VBA) ou que cela ne correspond pas forcément à mes attentes.

Après moult recherches, j'ai trouvé un fichier qui s'approche à ce que je recherche, j'ai apporté quelques légères modifications, mais il y a une limite qui me chagrine.

En effet, sur le fichier en question, j'aimerai avoir la possibilité d'avoir plusieurs mots de passe.
Par exemple, les personnes ont accès à 3 onglets sans mot de passe (onglet 3, 4 et 5)
Il y a un onglet accessible que par monsieur X à l'aide d'un mot de passe (onglet 1)
Il y a un onglet accessible que par monsieur Y à l'aide d'un mot de passe (onglet 2)

J'ai tenté de dupliquer le code en modifiant les champs, mais, j'ai eu des messages d'erreur.

Il y a également un second aspect qui me gène (mais clairement pas prioritaire car les personnes qui auront accès à ce fichier n'ont aucune connaissance sur Excel). En réalisant un clic droit sur l'onglet TM006, il est possible de faire afficher les onglets masqués ruinant ainsi le blocage par un mot de passe.

Je vous remercie par avance de vos réponses.
 

Pièces jointes

Bonjour kingfadel, Richard33, le forum

Avec la même idée de kingfadel un code à tester.

pour "ThisWorkbook"
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("TM001").Visible = 2
Sheets("TM002").Visible = 2
Sheets("TM003").Visible = 2
Sheets("TM004").Visible = 2
Sheets("TM005").Visible = 2
End Sub

Pour le module 1

Sub Décache()
Dim nbressais As Byte
Dim Mdp
retour:
Mdp = InputBox("Entrez le mot de passe", "Avertissement : l'accès aux Feuilles est sécurisé ")
If Mdp = "" Then Exit Sub
If Mdp <> "" Then '"test" Then
Select Case Mdp
Case "Mdp1" ' mot de passe standart
Sheets("TM001").Visible = 2
Sheets("TM002").Visible = 2
Sheets("TM003").Visible = -1
Sheets("TM004").Visible = -1
Sheets("TM005").Visible = -1
Case "Mdp2"
Sheets("TM001").Visible = -1
Sheets("TM002").Visible = 2
Sheets("TM003").Visible = 2
Sheets("TM004").Visible = 2
Sheets("TM005").Visible = 2

Case "Mdp3"
Sheets("TM001").Visible = 2
Sheets("TM002").Visible = -1
Sheets("TM003").Visible = 2
Sheets("TM004").Visible = 2
Sheets("TM005").Visible = 2

Case Else
nbressais = nbressais + 1
If nbressais = 3 Then
MsgBox "Ce classeur va se fermer."
Sheets("TM001").Visible = 2
Sheets("TM002").Visible = 2
Sheets("TM003").Visible = 2
Sheets("TM004").Visible = 2
Sheets("TM005").Visible = 2
MsgBox "Mot de passe incorrect."

End If

End Select

End If
End Sub

A tester
 
Je vous remercie de vos réponses.

J'ai tenté à partir de vos 2 aides de réaliser divers tests (dont modifier le nom d'un onglet par sommaire, de rajouter un onglet, de changer les mots de passe...). Je ne sais pas trop où j'ai raté ma manipulation mais quand j'active le mot de passe, et que l'onglet fait son apparition. Lorsque je clique sur le sommaire, il me redemande un mot de passe. En saisissant à nouveau le mot de passe, finalement, je n'accède pas à l'onglet en question
 

Pièces jointes

- 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
17
Affichages
301
Réponses
6
Affichages
654
Retour