Vérification d'un mot de passe lors d'une identification
Résolu
AntoineDr
Messages postés
15
Statut
Membre
-
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
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:
Merci de votre aide
EDIT : ajout des balises de code !
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 !
1 réponse
-
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 écrisTextBox.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 ?
-
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 -
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 + 1Wend
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 ) -
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 -
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 -
-