Bonjour,
J'ai créé un Userform qui permet à l'ouverture de mon fichier Excel de :
1-Sélectionner un utilisateur dans une liste déroulante
2-D'insérer un code d'accès relier à l'utilisateur
3-Un bouton de confirmation permettant d'ouvrir le fichier excel
La liste des utilisateurs et des codes d'accès associés se trouve sur une feuille masquée nommée "utilisateurs".
1er souci : je voudrais que si une personnene faisant pas partie de la liste autorisée entre son nom, qu'il y ai un msg d'erreur lui indiquant que seule les personnes faisant partie de la liste déroulante sont autorisées à ouvrir la base de données.
2ème souci : lorsque le mot de passe n'est pas valide, VBA lance un msg de débogage ou de fin et si la personne clique sur Fin, le fichier s'ouvre et donc je n'ai plus de protection.
3ème souci : Si au lancement du fichier, la personne n'active pas les macros, le fichier s'ouvre sans demander les logins et passwords associés. Il faudrait une commande qui active les macros sans le demander aux utilisateurs.
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 Private Sub CommandButton1_Click() identification = ComboBox1.ListIndex + 1 ' A voir pour la fonction <> qui ne fonctionne pas 'If TextBox2.Value <> Sheets("utilisateurs").Cells(identification, 2).Value Then 'MsgBox "Sélectionnez votre identité dans la liste déroulante" 'End If If TextBox2.Value = Sheets("utilisateurs autorises").Cells(identification, 2).Value Then MsgBox ("Votre code est correct " & ComboBox1.Text) Me.Hide Else Select Case MsgBox(ComboBox1.Text & " votre mot de passe est erronné", vbAbortRetryIgnore + vbCritical, "Centre d'identification du personnel autorisé") Case vbAbort 'procédure si click sur Abandonner Unload Me ThisWorkbook.Close savechanges:=False Case vbRetry 'procédure si click sur Réessayer Case vbIgnore 'procédure si click sur Ignore If CloseMode = vbFormControlMenu Then MsgBox (ComboBox1.Text & ", pour des raisons de sécurité, cette commande est désactivée. Veuillez Réessayer ou Ignorer.") Cancel = True End If End Select End If End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) ' désactive la croix en haut a droite du Userform If CloseMode = vbFormControlMenu Then MsgBox "Pour des raisons de sécurité, cette commande est désactivée." Cancel = True End If End Sub![]()
Partager