Bonjour,
Il y a quelque petites erreurs dans ton code, je te propose ces corrections :
L'objet cell ne bouge pas car
cell = cell.Offset(1, 0)
recopie la valeur de cell.Offset(1, 0) dans cell. Tu dois donc avoir après exécution de ta macro la valeur de C2 recopiée dans B2. La bonne formulation est
Set cell = cell.Offset(1, 0)
Ensuite, la logique de la boucle est inversée, il faut initialiser MotDePasseValide à Faux et mettre dedans True si on trouve le mot de passe recherché.
Voici comment tu pourrais coder ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Function MotDePasseValide(mot As String)
Dim cell As Range
MotDePasseValide = False
Set cell = Worksheets("Utilisateurs_Autorisés").Range("B2")
'Tant qu'il y a des mots de passe à vérifier
Do While Not IsEmpty(cell)
'Le mot de passe saisi est trouvé dans la cellule :
'on alimente MotDePasseValide et on sort de la boucle
If mot = cell.Value Then
MotDePasseValide = True
Exit Do
End If
'On se déplace à la ligne suivante
Set cell = cell.Offset(1, 0)
Loop
End Function |