Bonjour,
Je bloque sur du VBA.... normal XD
alors voila J'ai un fichier qui a son ouverture fait pop une inputbox et demande un matricule (ex: U789345). Si le matricule est connu dans une feuille appelée DroitsUsers (colonne A), alors les onglets associés dans une seconde colonne(colonne B) sont affichés, si le matricule n'existe pas, msgbox avec message d'erreur puis retour sur l'inputbox demandant le matricule.
Je souhaiterai faire une input box de "confirmation":
Si matricule entré précedemment est dans la liste (colonne A de DroitsUsers) alors rechercheV dans la même fueilleune 3ième colonne (C), contenant le nom associé au matricule.
Puis msgbox demandant "êtes vous bien -nom et matricule- (trouver par la rechercheV) avec "oui" et "non" ds la msgbox, Si oui alors affichage des onglets associés (en colonne B de DroitsUSers) Sinon retour l'inputbox de demande de matricule.
J'expère que mon explication est claire.
Merci d'avance!
Ps: j'ai trouvé ce code sur un fil de discussion, ce n'est pas moi qui l'ait fait.
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127 Private Sub Workbook_BeforeClose(Cancel As Boolean) 'on affiche la feuille Page d'accueil Sheets("Page d'accueil").Visible = True 'on planque toutes les autres feuilles sauf Vierge For x = 1 To ThisWorkbook.Sheets.Count If Sheets(x).Name <> "Page d'accueil" Then Sheets(x).Visible = xlSheetVeryHidden Next End Sub Private Sub Workbook_Open() On Error Resume Next Application.ScreenUpdating = False 'on defini un pointeur Pointeur = 0 'on affiche la feuille Vierge Sheets("Page d'accueil").Visible = True 'on va dessus Sheets("Page d'accueil").Activate 'on planque toutes les autres For x = 1 To ThisWorkbook.Sheets.Count If Sheets(x).Name <> "Page d'accueil" Then Sheets(x).Visible = xlSheetVeryHidden Next 'on saisit le user User = InputBox("Veuillez saisir votre nom d'utilisateur", "Utilisateur") 'on saisit le mot de passe 'Pour mettre un mot de passe enlever le " ' " de la ligne d'après 'MDP = InputBox("Veuillez saisir votre mot de passe", "Mot de passe") 'Derniere ligne du tableau de la feuille DroitsUsers pour boucler dessus DerLigne = Sheets("DroitsUsers").Range("A65536").End(xlUp).Row 'on boucle pour trouver les occurences, x=2 car je pars du principe que la premiere ligne contient les entetes de colonne For x = 2 To DerLigne 'si ce qu'il y a dans la colonne1 (Colonne A : user) = le user saisi et ce qu'il y a dans la colonne2 (Colonne B : mot de passe) If Worksheets("DroitsUsers").Cells(x, 1) = User And Worksheets("DroitsUsers").Cells(x, 2) = MDP Then 'on affiche la feuille définié en colonne3 (Colonne C : Onglet autorisé) 'on affiche la feuille correspondante FeuilleVisible = Worksheets("DroitsUsers").Cells(x, 3) Sheets(FeuilleVisible).Visible = True 'on va dessus Sheets(FeuilleVisible).Activate 'on se met un pointeur pour voir si on trouve quelque chose, si on trouve rien on quittera Pointeur = Pointeur + 1 End If Next x 'Si le pointeur est 0 on ferme le fichier. If Pointeur = 0 Then MsgBox "Utilisateur ou mot de passe non valide, si ce message persiste veuillez vous adresser au gestionnaire du fichier" End If If Pointeur = 0 Then User = InputBox("Veuillez saisir votre nom d'utilisateur", "Utilisateur") End If 'on planque la feuille Vierge Sheets("Page d'accueil").Visible = 2 Application.ScreenUpdating = True End Sub
Partager