Login/Password VBA

sofmartel Messages postés 300 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 7 avril 2022 - 1 nov. 2007 à 15:36
sofmartel Messages postés 300 Date d'inscription vendredi 19 octobre 2007 Statut Membre Derniè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)

6 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
sofmartel Messages postés 300 Date d'inscription vendredi 19 octobre 2007 Statut Membre Derniè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")
       
        End If
    End If
   
End Sub
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
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

MPi²
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
2 nov. 2007 à 00:25
Finalement, laisse tomber la partie de la feuille qui se nomme PW...

MPi²
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
beny100 Messages postés 213 Date d'inscription vendredi 17 novembre 2006 Statut Membre Derniè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
0
sofmartel Messages postés 300 Date d'inscription vendredi 19 octobre 2007 Statut Membre Dernière intervention 7 avril 2022
4 nov. 2007 à 20:23
ca marche pour VBA Excel car quand je tape arraylist la ligne se met en rouge?
0
Rejoignez-nous