Bonjour,
Je vous expose mon problème :
A l'ouverture d'un classeur excel, j'ai créé une macro qui demande le nom de l'utilisateur et son mot de passe. Je veux qu'en fonction de son mot de passe il n'y ait qu'un ou plusieurs onglets de visible.
J'arrive à faire l'un ou l'autre mais je n'arrive pas à faire en sorte que si le MDP =("blabla") alors seule la feuille1 est visible et activée, si le MDP =("blabla2") alors toutes les feuilles sont visibles et activées.
J'ai essayé plusieurs codes.

Voici le code que j'ai trouvé sur internet et dont je me suis servie:

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
 
Private Sub Workbook_Open()
    On Error Resume Next
    Application.ScreenUpdating = False
 
'on saisit le user
    User = InputBox("Veuillez saisir votre nom d'utilisateur", "")
'on saisit le mot de passe
    MDP = InputBox("Veuillez saisir votre mot de passe", "")
 
'on cherche le mot de passe dans la feuille DroitsUsers en fonction du user saisi
    SchMDP = WorksheetFunction.VLookup(User, Sheets("DroitsUsers").Range("A2:B65536"), 2, False)
'on cherche la feuille dans DroitsUsers en fonction du user saisi
    SchFeuil = WorksheetFunction.VLookup(User, Sheets("DroitsUsers").Range("A2:C65536"), 3, False)
 
'si le mdp saisi = le mdp trouvé dans la feuille DroitsUsers
    If MDP = SchMDP Then
'on affiche la feuille correspondante
        Sheets(SchFeuil).Visible = True
'on va dessus
        Sheets(SchFeuil).Activate
    End If
 
'on planque toutes les autres
    For x = 1 To ThisWorkbook.Sheets.Count
        If Sheets(x).Name <> SchFeuil Then Sheets(x).Visible = xlSheetVeryHidden
 
    Next
    Application.ScreenUpdating = True
 
End Sub
Voici mes modifications:

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
Dim MDP As String
Dim Utilisateur As String
 
 
 
Private Sub Workbook_Open()
    On Error Resume Next
    Application.ScreenUpdating = False
 
 
'on saisit le user
    Utilisateur = InputBox("Veuillez saisir votre nom d'utilisateur", "Utilisateur")
'on saisit le mot de passe
    MDP = InputBox("Veuillez saisir votre mot de passe", "MDP")
 
  If MDP = Sheets("Utilisateurs").Range("B2") Then
  Sheets(Array("Utilisateurs", "Programmées", "DG", "FB", "CR", "NG", "CV", "AA", "BB", "HC", "VP", "SS")).Visible = True
   Sheets(Array("Utilisateurs", "Programmées", "DG", "FB", "CR", "NG", "CV", "AA", "BB", "HC", "VP", "SS")).Activate
 
 
   ElseIf MDP = Sheets("Utilisateurs").Range("B3") Then
    Sheets("DG").Visible = True
   Sheets("DG").Activate
   Else
   End If
 
        If Sheets(x).Name <> SchFeuil Then Sheets(x).Visible = xlSheetVeryHidden
 
 
  End Sub
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
 
Private Sub Workbook_Open()
    On Error Resume Next
    Application.ScreenUpdating = False
 
'on saisit le user
    Utilisateur = InputBox("Veuillez saisir votre nom d'utilisateur", "Utilisateur")
'on saisit le mot de passe
    MDP = InputBox("Veuillez saisir votre mot de passe", "MDP")
 
'on cherche le mot de passe dans la feuille DroitsUsers en fonction du user saisi
    SchMDP = WorksheetFunction.VLookup(MDP, Sheets("Utilisateurs").Range("A2:B400"), 2, False)
 
'on cherche la feuille dans DroitsUsers en fonction du user saisi
    SchFeuil = WorksheetFunction.VLookup(Julie, Sheets("Utilisateurs").Range("A2:V400"), 3, False)
    SchFeuil1 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 4, False)
    SchFeuil2 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 5, False)
    SchFeuil3 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 6, False)
    SchFeuil4 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 7, False)
    SchFeuil5 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 8, False)
    SchFeuil6 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 9, False)
    SchFeuil7 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 10, False)
    SchFeuil8 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 11, False)
    SchFeuil9 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 12, False)
    SchFeuil10 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 13, False)
    SchFeuil11 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 14, False)
    SchFeuil12 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 15, False)
    SchFeuil13 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 16, False)
    SchFeuil14 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 17, False)
    SchFeuil15 = WorksheetFunction.VLookup(Utilisateur, Sheets("Utilisateurs").Range("A2:V400"), 18, False)
 
 
'si le mdp saisi = le mdp trouvé dans la feuille DroitsUsers
    If MDP = SchMDP Then
'on affiche la feuille correspondante
        Sheets(SchFeuil).Visible = True
        Sheets(SchFeuil1).Visible = True
        Sheets(SchFeuil2).Visible = True
        Sheets(SchFeuil3).Visible = True
        Sheets(SchFeuil4).Visible = True
        Sheets(SchFeuil5).Visible = True
        Sheets(SchFeuil6).Visible = True
        Sheets(SchFeuil7).Visible = True
        Sheets(SchFeuil8).Visible = True
        Sheets(SchFeuil9).Visible = True
        Sheets(SchFeuil10).Visible = True
        Sheets(SchFeuil11).Visible = True
        Sheets(SchFeuil12).Visible = True
        Sheets(SchFeuil13).Visible = True
        Sheets(SchFeuil14).Visible = True
        Sheets(SchFeuil15).Visible = True
 
 
'on va dessus
        Sheets(SchFeuil).Activate
        Sheets(SchFeuil1).Activate
        Sheets(SchFeuil2).Activate
        Sheets(SchFeuil3).Activate
        Sheets(SchFeuil4).Activate
        Sheets(SchFeuil5).Activate
        Sheets(SchFeuil6).Activate
        Sheets(SchFeuil7).Activate
        Sheets(SchFeuil8).Activate
        Sheets(SchFeuil9).Activate
        Sheets(SchFeuil10).Activate
        Sheets(SchFeuil11).Activate
        Sheets(SchFeuil12).Activate
        Sheets(SchFeuil13).Activate
        Sheets(SchFeuil14).Activate
        Sheets(SchFeuil15).Activate
    End If
 
'on planque toutes les autres
 
 
 
 
       If Sheets(x).Name <> [SchFeuil] And [SchFeuil1] And [SchFeuil2] And [SchFeuil3] And [SchFeuil4] And [SchFeuil5] And [SchFeuil6] And [SchFeuil7] And [SchFeuil8] And [SchFeuil9] And [SchFeuil10] And [SchFeuil11] And [SchFeuil12] And [SchFeuil13] And [SchFeuil14] And [SchFeuil15] Then
       Sheets(x).Visible = xlSheetVeryHidden
 
 
 
         End If
 
 
 
End Sub
Merci d'avance.

Cordialement,

Julie