"Inputbox de confirmation"
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:
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 |