Erreur code masquer feuille VBA

Bonjour à toutes et tous,

J'ai regardé ce qui se faisait sur le forum et sur le net, et je voulais masquer des feuille et afficher des feuilles selon la responsabilité de la personne.

Pour cela j'ai utilisé ce code là qui ne fonctionne pas, et je voulais savoir pourquoi et je n'arrive toujours pas à identifier l'erreur.

Après quelques heures à chercher le pourquoi du comment, je me tourne vers vous pour avoir votre avis d'expert!!!

Voici le code que j'utilise:

Private Sub CommandButton1_Click()

Dim mot_de_passe As String
Dim role As String
Dim sh As Object

mot_de_passe = WorksheetFunction.VLookup(Txt_user, Sheets("Table_Fichier").Range("Y:AA"), 2, 0)
role = WorksheetFunction.VLookup(Txt_user, Sheets("Table_Fichier").Range("Y:AA"), 3, 0)

If mot_de_passe = Txt_pass And role = "Admin" Then

Application.ScreenUpdating = False

    For Each sh In Array("Menu", "P&L", "GM par grade", "Recrutement")

        Sheets(sh).Visible = True
    Next sh

    Worksheets("Menu_Res").Visible = xlSheetVeryHidden
    Worksheets("Menu_Principal").Visible = xlSheetVeryHidden
    Worksheets("Menu").Activate

Application.ScreenUpdating = True

End If

End Sub

En espérant que vos lumières puissent m'éclairer!!!

Bonne soirée à vous toutes et tous.

Bonsoir Schmill78,

Quelle valeur Txt_pass elle a?

Pas dans ton code tu as...

Si renseignées les autres variables sont.

Force as perdu Txt_pass. Vide elle est.

À contrôler donc.

Merci X Cellus pour ta réponse.

Au lieu d'un grand discours voici le fichier en question...J'ai une erreur "Run time code 424".

Quand je fais "Debug" il me met la ligne du code "For Each ...." en jaune et je n'arrive pas à comprendre pourquoi!

Si tu peux m'aider...un grand merci te sera donner !

ps : login : Martin et mot de passe : 123

8fichier-test.xlsm (45.19 Ko)

Bonjour Schmill78

Remplace ton milieu de code par

If mot_de_passe = Txt_pass And role = "Admin" Then
    Pass = "Members_Toto_Titi_Fifi_Donald_Content"
    For Each sh In Worksheets '"Members", "Toto", "Titi", "Fifi", "Donald", "Content")
    If InStr(Pass, sh.Name) > 0 Then Sheets(sh.Name).Visible = True
    Next sh

Ensuite tu peux garder ta feuille Login mais en effaçant ses données.

Bons tests, bonne continuation.

Rechercher des sujets similaires à "erreur code masquer feuille vba"