Rendre feuilles visibles après saisie d'un mdp

Bonsoir à tous !

Question du soir...

Voilà j'ai ajouté un code à mon fichier afin que toutes les feuilles (8 en tout) du classeur soit masquées hormis ma feuille Menu. Puis à partir de mon menu je peux accéder à 4 de mes feuilles via des commandbutton.

Voici le code que j'utilise :

Private Sub Workbook_SheetDeactivate(ByVal sh As Object)
   k = ActiveSheet.Index
   For I = 1 To Worksheets.Count
   If Not Worksheets(I).Name = "Menu" Then
   If I <> k Then Worksheets(I).Visible = False
   End If
   Next
   End Sub

Jusque là, pas de problème. Là où je suis embêtée, c'est que je souhaite rendre visibles 3 dernières feuilles dont l'accès est contrôlé par un mot de passe. J'arrive à afficher les 3 dernières feuilles mais en raison du code écrit dans ThisWorkbook, dès que j'essaie de passer d'une feuille à l'autre, les 2 autres feuilles se masquent... Voici le code présent dans ma feuille "Menu":

Private Sub BtHisto_Click()
Dim Mdp As String
 recom:
Mdp = InputBox("Veuillez introduire votre mot de passe", "Password")
If Mdp = "" Then Exit Sub
 If Mdp = "toto" Then
Dim sh As Worksheet
For Each sh In Worksheets
    sh.Visible = xlSheetVisible
Next sh
Else
    MsgBox "Mot de passe non valide !", vbCritical, "Password"
    GoTo recom
End If
 End Sub

Comment faire pour ajouter une condition au code présent dans Thisworkbook, rendant toutes les feuilles visibles en continu en cas de saisie correcte du mot de passe ??

Merci et bonne soirée !

Salut le forum

Déclare une variable Flag comme Public dans un module standard

Public Flag as Boolean

Et tu l'utilises ensuite dans tes codes

Private Sub BtHisto_Click()
Flag= True

Et dans l'autre

Private Sub Workbook_SheetDeactivate(ByVal sh As Object)
If Flag then Exit Sub

Prévoir un code pour remettre Flag à False

Mytå

Bonsoir Mytå et merci !

Cependant même si la procédure fonctionne bien, et que toutes les feuilles sont visibles, dès que je clique sur une feuille, les autres disparaissent toujours... Qu'ai-je mal compris ??

NB: J'i bien remis le flag = false à la fin de mon code de la feuille Menu.

A+

Re le forum

C'est certain quand remettant le Flag à False ta macro

Private Sub Workbook_SheetDeactivate(ByVal sh As Object)

est réactivé et masque alors les feuilles.

Mytå

Effectivement... j'suis nulle...

Je comprends vite mais il faut m'expliquer longtemps !

Merci Mytå et bonne soirée à tous !

Rechercher des sujets similaires à "rendre feuilles visibles saisie mdp"