Bonsoir à tous

J'ai un userform à patir duquel je souhaite que lorsque les conditions souhaitées pour un utilisateur sont réunies, que les feuilles devant s'afficher s'affichent et les autres restent masquées.
Les conditions à prendre en compte sont :
- le code utilisateur à saisir dans le textbox5. la liste des utilisateurs se trouve dans la feuille ADMIN!B4:B23
- le mot de passe à saisir dans le textbox6. le mot de passe de chaque utilisateur figure dans la feuille ADMIN!C4:C23
Cela signifie que lorsque le code utilisateur et le mot de passe sont corrects les actions suivantes doivent se produire :
- fermeture du userform
- affichage des feuilles autorisées sachant les feuilles autorisées pour un utilisateur sont celles comportant "x".

J'ai bidouillé le code ci-dessous mais il ne fonctionne pas et une erreur est signalée dans cette partie du code :
CODE: TOUT SÉLECTIONNER
Code : Sélectionner tout - Visualiser dans une fenêtre à part
If Sheets("ADMIN").Cells(Ligne, i) = "x" Then
Voici le l'intégralité du code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
Sub Gestion_Feuille()
 
Sheets("ADMIN").Visible = True
Sheets("ADMIN").Select
 Dim i As Long, Ligne As Long, nbColonnes As Long, nbLignes As Long
 
 
    nbLignes = Sheets("ADMIN").Cells(Rows.Count, "B").End(xlUp).Row
    nbColonnes = Sheets("ADMIN").Cells(3, Columns.Count).End(xlToLeft).Column
 
    'Trouver la ligne du User
   For i = 4 To nbLignes
        If Sheets("ADMIN").Range("B" & i) = UCase(Range("motpasse")(i)) Then
            Ligne = i
            Exit For
        End If
    Next
 
    'Parcourir ses feuilles permises
   For i = 4 To nbColonnes
        If Sheets("ADMIN").Cells(Ligne, i) = "x" Then
            Sheets(Cells(3, i).Value).Visible = xlSheetVisible
        Else
            Sheets(Cells(3, i).Value).Visible = xlSheetVeryHidden
        End If
    Next
    End Sub
 
Le code du userform est le suivant:
 
Private Sub CommandButton1_Click()
Dim i
Dim t
For i = 1 To Range("MotPasse").Count
For t = 1 To Range("motpasse2").Count
If TextBox5 = UCase(Range("motpasse")(i)) And TextBox6 = UCase(Range("motpasse2")(t)) Then
Unload Me
Call Gestion_Feuille
End If
Exit Sub
Next
Next
TextBox2.Value = TextBox2.Value + 1
If TextBox2.Value = 3 Then
Unload Me
If Workbooks.Count > 1 Then
ActiveWorkbook.Save
ActiveWorkbook.Close
Else
Application.Quit
End If
Else
TextBox5 = ""
TextBox6 = ""
TextBox5.SetFocus
TextBox6.SetFocus
 
End If
End Sub
Comment fusionner les 2 codes (le code du module et celui du userform) pour aboutir au même résultat.
Je reste disponible pour plus d'éclaircissement