Hi,
I have wrote a code with Do...Loop, in between, i have used If..else..End if structure. But It seems as though the "Else" does not work in that case.
This is the code:
Why does the first "Else" of "If" does not work in this case.
I am missing something? I waiting for your help.
I have wrote a code with Do...Loop, in between, i have used If..else..End if structure. But It seems as though the "Else" does not work in that case.
This is the code:
Code:
Private Sub cmdOK_Click()
'******************************************
'******************************************
'Code de connexion dans l'applicatif
'******************************************
'******************************************
Dim sLogin As String
Dim sPwd As String
Dim i As Integer
Dim iVarTest As Integer
Dim iLongueur As Integer
'Gestionnaire des erreurs
On Error Resume Next
'Récupération des paramètres de connexion
sLogin = txtNom
sPwd = txtMot
'Récupération de la longueur du mot de passe
iLongueur = Len(sPwd)
'Vérification que le mot de passe est de longueur supérieur à 5 et inférieur à 8
If iLongueur < 5 Or iLongueur > 8 Then
MsgBox "Le mot de passe doit avoir 5 caractères au minimum et 8 caractères au maximum", vbInformation, "Longueur mot de passe"
txtMot.SetFocus
Exit Sub
End If
'Récupération du numéro de la dernière ligne occupée
iVarTest = Sheets("mot").Range("A65000").End(xlUp).Row
'*****************************************************
'*****************************************************
Application.ScreenUpdating = False
'Initialisation de la variable de la boucle
i = 2
'Début de la boucle
Do
'Vérification du nom d'utilisateur et du mot de passe
If (sLogin = Sheets("mot").Cells(i, 1).Value) And (sPwd = Sheets("mot").Cells(i, 2).Value) Then
'Vérification du profil de l'utilisateur
If Sheets("mot").Cells(i, 3).Value = 0 Then
Call ReactivationFeuille0
'sortie de la boucle
Exit Do
'****************************************************
ElseIf Sheets("mot").Cells(i, 3).Value = 1 Then
Call ReactivationFeuille1
'sortie de la boucle
Exit Do
'*****************************************************
ElseIf Sheets("mot").Cells(i, 3).Value = 2 Then
Call ReactivationFeuille2
'sortie de la boucle
Exit Do
'*****************************************************
Else
MsgBox "Groupe inconnu", vbInformation, "Gestion des profils"
Exit Do
End If
'***********************
'Si code actif, une seule entrée dans la boucle
'***********************
'Alternative à problème
'Else
'MsgBox "Nom ou mot de passe incorrects", vbInformation, "Login"
'Exit Do
'***********************
'***********************
End If
'Icrémentation de la boucle
i = i + 1
'Sortie définitive de la boucle si la condition est remplie:
'(la valeur de i est supérieure au numéro de la dernière ligne occupée)
Loop While i <= iVarTest
End Sub
Why does the first "Else" of "If" does not work in this case.
I am missing something? I waiting for your help.