sofmartel
Messages postés300Date d'inscriptionvendredi 19 octobre 2007StatutMembreDernière intervention 7 avril 2022
-
1 nov. 2007 à 15:36
sofmartel
Messages postés300Date d'inscriptionvendredi 19 octobre 2007StatutMembreDernière intervention 7 avril 2022
-
4 nov. 2007 à 20:23
Bonjour, je suis sur un projet VBA Excel j'ai creer un userform d'authentification. on doit entrer un login et un mot de passe et il y a un bouton ok et annuler. lorsque l'on clik sur ok si le login et password sont valides cela ouvre une autre fenêtre (l'authentification est donc réussie) mais j'ai un problème dans mon programme c'est que dans mon fichier excel il y a plusieur login et password et le programme en vérifie ke 1 celui ke j'ai defini je cherche la formule pour kil aille vérifier dans toute la liste. merci de votre aide! (fofi7@hotmail.fr)
cs_Jack
Messages postés14007Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 1 nov. 2007 à 17:32
Salut
(catégorie de la question modifiée en VBA)
Ta question est trop vague. Impossible de te répondre avec aussi peu d'élément.
- "le programme en vérifie que 1, celui que j'ai défini" : Oui, c'est bien
- "aller vérifier dans la liste" : quelle liste ? sous quelle forme ?
En supposant que :
- tes logins se trouvent dans un tableau "Login"
- tes passwords dans un autre tableau "Password"
- que la saisie du login soit faite dans une TextBox nommée txtLogin
- que la saisie du password soit faite dans une TextBox nommée txtPassword
il suffit de faire une boucle de recherche :
Dim bTrouvé As Boolean
Dim r As Integer
For r = 0 To UBound(Login)
' Recherche du login dans la liste
If txtLogin.Text = Login(r) Then
' Vérifie que le password associé soit correct
If txtPassword.Text = Password(r) Then
bTrouvé = True
Exit For
End If
EndiIf
Next r
If Not bTrouvé Then
MsgBox "Pas bon"
Else
MsgBox "Login Ok"
End If
A toi d'adapter avec tes éléments.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
sofmartel
Messages postés300Date d'inscriptionvendredi 19 octobre 2007StatutMembreDernière intervention 7 avril 2022 1 nov. 2007 à 17:42
voila ma feuille excel en gro ske ca donne
colonne A colonne b
Login password
sophie soft1986
izgffeho jdkfhize
jefgzu klhsfi
mon code kan on clik sur le bouton ok apres avoir entrer le login et mot de passe
Private Sub cmdOk_Click()
Dim Menu As frmMenu
If LCase(Me.Text_Login.Text) = "sophie" Then c'est ici la je defini que 1 utilisateur et je veu kil verifie pour tous ce
If Me.Text_Password.Text = "soft1986" Then de ma feuille Excel
'authentifiaction réussie
Let modVariable.blnAuthentifie = True
Call Me.Hide
'accès au menu
frmMenu.Show
Else
Call MsgBox("Le nom d'utilisateur ou le mot de passe est incorrect", vbExclamation, "Authentifiaction")
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 1 nov. 2007 à 23:55
Salut,
Tu es récent(e) sur le site... bon
Évite le langage du genre kan kon né kon ... si tu veux de l'aide sur ce site.
À quoi sert ceci dans ton code ?
Dim Menu As frmMenu
Maintenant, tu écris ceci
If LCase(Me.Text_Login.Text) = "sophie" Then
C'est certain que tu ne peux vérifier autre chose que sophie ici...
Il faudrait que tu boucles les lignes où sont inscrites les données
Disons que la feuille où se trouvent les mots de passe se nomme PW
For i = 2 to 10 ' ici il faudrait avoir une variable qui lise la dernière ligne
If LCase(Me.Text_Login.Text) = Range("A" & i) and _
LCase(Me.Text_Password.Text) = Range("B" & i) Then
'authentification réussie
.....
End if
next
beny100
Messages postés213Date d'inscriptionvendredi 17 novembre 2006StatutMembreDernière intervention 1 avril 2009 2 nov. 2007 à 12:55
If LCase(Me.Text_Login.Text) = "sophie" Then
If Me.Text_Password.Text = "soft1986"
t'oblige a verifez que le password ne doit etre rien d'autre que soft1986 et le login sophie.
donc specifie un truc de ce genre:
tu peux definir des arraylists qui vont contenir tous les logins et tous les mots de passe
qui se trouve dans ta feuille excel et tu procede comme cela
dim login as new arraylist()
dim pwd as new arraylist()
dim i as integer= login.count
for k as integer =0 to i-1
If LCase(Me.Text_Login.Text) = "login(k)" Then
If Me.Text_Password.Text = "pwd(k)" then
.......................
..................
k= k+1
next k