Vérification d'un mot de passe lors d'une identification

Résolu/Fermé
AntoineDr Messages postés 15 Date d'inscription jeudi 8 janvier 2015 Statut Membre Dernière intervention 11 janvier 2015 - Modifié par jordane45 le 8/01/2015 à 13:36
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 8 janv. 2015 à 18:01
Bonjour, Bonsoir

Dans la tentative de créer un logiciel d'enregistrement clients pour une bibliothèque, une des interfaces permet de s'enregistrer comme nouveau client. La vérification du mot de passe fonctionne lorsque

mdp.Text = verifmdp.Text

Seulement une InputBox s'affiche quand ils sont différents mais cela ne fonctionne pas, même si l'on rentre le bon mot de passe.

Je vous copie colle le codage effectué pour cette interface:
Private Sub Validerinscription_Click()

Dim i As Integer
i = 2

While Feuil2.Cells(i, 1) <> Empty
i = i + 1
Wend

Feuil2.Cells(i, 1) = i - 1
Feuil2.Cells(i, 2) = nom.Text
Feuil2.Cells(i, 3) = prenom.Text
Feuil2.Cells(i, 4) = mail.Text
Feuil2.Cells(i, 5) = mdp.Text



If mdp.Text <> verifmdp.Text Then

Do

InputBox ("Veuillez saisir un nouveau mot de passe")

Loop Until TextBox.Text = mdp.Text 'PROBLEME ICI

Else


nom.Text = ""
prenom.Text = ""
mail.Text = ""
mdp.Text = ""
verifmdp.Text = ""

Pageaccueil.Show

End If

End Sub


Merci de votre aide


EDIT : ajout des balises de code !
A voir également:

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
8 janv. 2015 à 13:45
Bonjour,

Déjà...

Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Ensuite :
à quoi te sert cette partie du code :
While Feuil2.Cells(i, 1) <> Empty
i = i + 1
Wend

A trouver la dernière ligne de ton tableau ?
Si oui.. dans ce cas.. plutôt que de passer par une boucle tu peux faire :
i = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row


Enfin...
Tu écris
TextBox.Text = mdp.Text 

.... Tu es sûr que ta textbox.. se nomme TextBox ?? n'y aurait-il pas un chiffre derrière ?


Au cas où... as tu regardé en mode pas à pas si tes variables sont bonnes ?
0
AntoineDr Messages postés 15 Date d'inscription jeudi 8 janvier 2015 Statut Membre Dernière intervention 11 janvier 2015
Modifié par AntoineDr le 8/01/2015 à 17:09
J'ai trouvé cette solution pour la vérification du mot de passe :

While Feuil2.Cells(i, 1) <> Empty
i = i + 1
Wend


If mdp.Text <> verifmdp.Text Then

MsgBox("Veuillez saisir un nouveau mot de passe")

Else


Donc ce problème là est résolu. Par contre existe-t-il d'autres moyens avec des outils plus simple comme
While
Do loop until
...

Pour chercher une valeur existante dans une feuille excel ?

Je souhaite valider ou non l'identification d'une personne selon un numéro client à rechercher dans un annuaire.

Merci
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > AntoineDr Messages postés 15 Date d'inscription jeudi 8 janvier 2015 Statut Membre Dernière intervention 11 janvier 2015
Modifié par jordane45 le 8/01/2015 à 17:04
J'ai trouvé cette solution pour la vérification du mot de passe :

Ben.. ça ne fait rien à part incrémenter la variable I tant que la cellule n'est pas vide...
ce qui , donc.. , semble correspondre à la recherche de la dernière ligne non vide d'une plage de cellule.. et donc .. aucun rapport avec l'éventuelle recherche d'un user Login/mot de pass.....


Par contre existe-t-il d'autres moyens
Pour chercher une valeur existante dans une feuille excel ?


Oui.. il existe la méthode FIND
Plus simple.... pas sûr .. plus efficace par contre !
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel


PS: Pour l'utilisation des balises de code... c'est TOUT le code qu'il faut mettre ENTRE les balises.. pas juste une mot ou une instruction...

Toi tu as écris ( par exemple ) :
While
Feuil2.Cells(i, 1) <> Empty
i = i + 1
Wend


Alors que tu aurais du avoir :
While Feuil2.Cells(i, 1) <> Empty
i = i + 1
Wend


Nb2 : Si tu regardes le lien que je t'avais donné à ce sujet.. il montre également comment CHOISIR le LANGAGE correspondant.. ( ici..pour le VBA .. tu prendras BASIC )
0
AntoineDr Messages postés 15 Date d'inscription jeudi 8 janvier 2015 Statut Membre Dernière intervention 11 janvier 2015 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
8 janv. 2015 à 17:27
Mon problème de recherche du client dans la base de données est là

Dim i As Integer

n = 2    'j ai rajouté ça...
While Feuil2.Cells(n, 1) <> Empty
n = n + 1
Wend


For i = 2 To n 'On veut vérifier que le numéro client existe via feuil.2
If TextBox1 <> Feuil2.Cells(i, 1) Then
MsgBox ("Veuillez entrer un numéro correct")

ElseIf TextBox2 <> Feuil2.Cells(i, 5) Then 'Trouver mdp qui correspond au n° client de la feuil.2
MsgBox ("Veuillez entrer un mot de passe correct")

Else
 

End If

Next
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > AntoineDr Messages postés 15 Date d'inscription jeudi 8 janvier 2015 Statut Membre Dernière intervention 11 janvier 2015
Modifié par jordane45 le 8/01/2015 à 17:36
Tu ne prend pas en compte les remarques que je te fais... à quoi bon continuer à t'aider .. hein ??

Enfin bon essayons encore...

Ce code là :
n = 2    'j ai rajouté ça...
While Feuil2.Cells(n, 1) <> Empty
n = n + 1
Wend


Doit être remplacé par :
n= Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row


et cette partie là :
For i = 2 To n 'On veut vérifier que le numéro client existe via feuil.2
If TextBox1 <> Feuil2.Cells(i, 1) Then
MsgBox ("Veuillez entrer un numéro correct")

ElseIf TextBox2 <> Feuil2.Cells(i, 5) Then 'Trouver mdp qui correspond au n° client de la feuil.2
MsgBox ("Veuillez entrer un mot de passe correct")

Else
 

End If

Next


Par ... l'utilisation de la méthode FIND ! (voir le lien que je t'ai donné !!!
Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String

'********* à adapter ***********
'affectation de valeurs aux variables :
    'on cherche le mot  qui se trouve dans la TextBox1
Valeur_Cherchee = TextBox1
    'dans la première colonne de la feuille active
Set PlageDeRecherche = Feuil2.Columns(1)
'*******************************
'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)

'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
    'ici, traitement pour le cas où la valeur n'est pas trouvée
    MsgBox ("Veuillez entrer un numéro correct")
Else
    'ici, traitement pour le cas où la valeur est trouvée
   If TextBox2 <> Feuil2.Cells(Trouve.row, 5) Then 'Trouver mdp qui correspond au n° client de la feuil.2
     MsgBox ("Veuillez entrer un mot de passe correct")
   End if
End If
'vidage des variables
Set PlageDeRecherche = Nothing
Set Trouve = Nothing
0
AntoineDr Messages postés 15 Date d'inscription jeudi 8 janvier 2015 Statut Membre Dernière intervention 11 janvier 2015 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
8 janv. 2015 à 17:58
Je tente d'adapter ça alors, merci !!
0