Voudrais écrire code VBA pour mot de passe
baguidi
-
baguidi -
baguidi -
Bonjour,
Mon désir est décrire un code VBA sous excel qui me permettent de canaliser la saisie de mon mot de passe à au plus 3 essais.
j'ai écris un semblant de code mais seulement il ne fonctionne pas comme prévu certainement parce qu'il y a des coquilles dedans. Aidez moi s'il vous plait les gars.
Je vous suis toujours reconnaissant car j'ai déjà reçu plusieurs aides de votre part
je vous adore les potes.
je vous donne le lien qui vous permettra de consulter mon code. Il est joint par le site cijoint.fr
http://www.cijoint.fr/cij755825933214.xls
Mon désir est décrire un code VBA sous excel qui me permettent de canaliser la saisie de mon mot de passe à au plus 3 essais.
j'ai écris un semblant de code mais seulement il ne fonctionne pas comme prévu certainement parce qu'il y a des coquilles dedans. Aidez moi s'il vous plait les gars.
Je vous suis toujours reconnaissant car j'ai déjà reçu plusieurs aides de votre part
je vous adore les potes.
je vous donne le lien qui vous permettra de consulter mon code. Il est joint par le site cijoint.fr
http://www.cijoint.fr/cij755825933214.xls
A voir également:
- Voudrais écrire code VBA pour mot de passe
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Code ascii - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
3 réponses
Bonjour
Petites coquilles :
je suppose que tu voulais écrire "If rep=vbRetry" Then au lieu de "If vbRetry Then"
ton "encore" ne sert à rien
Grosse boulette :
tu fais de la réentrance, visiblement sans le vouloir.
Quand on clique sur le bouton, on rentre dans ton sub Cmd_validMotPasse_Click. Quand le code à été testé et refusé, tu réaffiches la feuille mais l'exécution de Cmd_validMotPasse_Click n'est pas terminée. Si l'utilisateur clique à nouveau, on re-rentre dans Cmd_validMotPasse_Click ! on remet le compteur de cette nouvelle instance à 1.
On peut s'en sortir ( de ton programme) en fermant la fenêtre au lieu de cliquer sur le bouton.
Il faut absolument que tu mémorises ton compteur dans une variable qui est déclarée hors de ton sub
Il ne faut pas faire de show dans ton sub
Il ne faut pas faire de boucle dans ton sub
Petites coquilles :
je suppose que tu voulais écrire "If rep=vbRetry" Then au lieu de "If vbRetry Then"
ton "encore" ne sert à rien
Grosse boulette :
tu fais de la réentrance, visiblement sans le vouloir.
Quand on clique sur le bouton, on rentre dans ton sub Cmd_validMotPasse_Click. Quand le code à été testé et refusé, tu réaffiches la feuille mais l'exécution de Cmd_validMotPasse_Click n'est pas terminée. Si l'utilisateur clique à nouveau, on re-rentre dans Cmd_validMotPasse_Click ! on remet le compteur de cette nouvelle instance à 1.
On peut s'en sortir ( de ton programme) en fermant la fenêtre au lieu de cliquer sur le bouton.
Il faut absolument que tu mémorises ton compteur dans une variable qui est déclarée hors de ton sub
Il ne faut pas faire de show dans ton sub
Il ne faut pas faire de boucle dans ton sub
Salut le père,
j'ai bien compris tes remarques et j'ai rectifié les coquilles mais il semble que j'ai encore besoin de quelques conseils car le programme ne tourne pas rond jusqu'a présent. j'ai enlévé la boucle et j'ai mis une instruction if mais il semble que sa cloche toujours. voici le nouveau code.
Dim ESSAI As Integer
Private Sub Cmd_validMotPasse_Click()
' Déclaration des variables mémoires
Dim compteur As Integer
Dim mopass As String
' Permet à la variable de convertir la valeur saisie en textbox2 en minuscule
mopass = StrConv(TextBox2, vbLowerCase)
If mopass = "bag" Then
UserForm2.Show
Unload Me
End If
'met la variable à 0
ESSAI = 0
' ceci permet de rentrer dans la boucle une fois que l'essai n'est pas bonne
If compteur < 3 And mopass <> "bag" Then
ESSAI = ESSAI + 1
rep = MsgBox("essai N°" & " " & ESSAI & " " & " mot de passe invalide voulez-vous reprendre", vbRetryCancel + vbInformation, "Projet ibrah")
End If
If rep = vbRetry Then
' ESSAI donne sa valeur à compteur pourqu'il le compare à 3 juste à l'entrée de l'instruction
compteur = ESSAI
TextBox2 = ""
Else
End If
If compteur = 3 Then
MsgBox " Violation du Mot de Passe - vous êtes à votre troisième essai", vbInformation, "Projet ibrah"
End If
End Sub
j'ai bien compris tes remarques et j'ai rectifié les coquilles mais il semble que j'ai encore besoin de quelques conseils car le programme ne tourne pas rond jusqu'a présent. j'ai enlévé la boucle et j'ai mis une instruction if mais il semble que sa cloche toujours. voici le nouveau code.
Dim ESSAI As Integer
Private Sub Cmd_validMotPasse_Click()
' Déclaration des variables mémoires
Dim compteur As Integer
Dim mopass As String
' Permet à la variable de convertir la valeur saisie en textbox2 en minuscule
mopass = StrConv(TextBox2, vbLowerCase)
If mopass = "bag" Then
UserForm2.Show
Unload Me
End If
'met la variable à 0
ESSAI = 0
' ceci permet de rentrer dans la boucle une fois que l'essai n'est pas bonne
If compteur < 3 And mopass <> "bag" Then
ESSAI = ESSAI + 1
rep = MsgBox("essai N°" & " " & ESSAI & " " & " mot de passe invalide voulez-vous reprendre", vbRetryCancel + vbInformation, "Projet ibrah")
End If
If rep = vbRetry Then
' ESSAI donne sa valeur à compteur pourqu'il le compare à 3 juste à l'entrée de l'instruction
compteur = ESSAI
TextBox2 = ""
Else
End If
If compteur = 3 Then
MsgBox " Violation du Mot de Passe - vous êtes à votre troisième essai", vbInformation, "Projet ibrah"
End If
End Sub
Bonjour le père,
je viens une fois encore relancer ma question a votre niveau. J'ai juste refait le code en corrigeant les qelques erreurs mais j'ai toujours une difficulté à avoir ce que je veux. Je sollicite toujours votre concours.
Merci de me comprendre.
Dim ESSAI As Integer
Private Sub Cmd_validMotPasse_Click()
' Déclaration des variables mémoires
Dim compteur As Integer
Dim mopass As String
' Permet à la variable de convertir la valeur saisie en textbox2 en minuscule
mopass = StrConv(TextBox2, vbLowerCase)
If mopass = "bag" Then
UserForm2.Show
Unload Me
End If
'met la variable à 0
ESSAI = 0
' ceci permet de rentrer dans la boucle une fois que l'essai n'est pas bonne
If compteur < 3 And mopass <> "bag" Then
ESSAI = ESSAI + 1
rep = MsgBox("essai N°" & " " & ESSAI & " " & " mot de passe invalide voulez-vous reprendre", vbRetryCancel + vbInformation, "Projet ibrah")
End If
If rep = vbRetry Then
' ESSAI donne sa valeur à compteur pourqu'il le compare à 3 juste à l'entrée de l'instruction
compteur = ESSAI
TextBox2 = ""
Else
End If
If compteur = 3 Then
MsgBox " Violation du Mot de Passe - vous êtes à votre troisième essai", vbInformation, "Projet ibrah"
End If
End Sub
je viens une fois encore relancer ma question a votre niveau. J'ai juste refait le code en corrigeant les qelques erreurs mais j'ai toujours une difficulté à avoir ce que je veux. Je sollicite toujours votre concours.
Merci de me comprendre.
Dim ESSAI As Integer
Private Sub Cmd_validMotPasse_Click()
' Déclaration des variables mémoires
Dim compteur As Integer
Dim mopass As String
' Permet à la variable de convertir la valeur saisie en textbox2 en minuscule
mopass = StrConv(TextBox2, vbLowerCase)
If mopass = "bag" Then
UserForm2.Show
Unload Me
End If
'met la variable à 0
ESSAI = 0
' ceci permet de rentrer dans la boucle une fois que l'essai n'est pas bonne
If compteur < 3 And mopass <> "bag" Then
ESSAI = ESSAI + 1
rep = MsgBox("essai N°" & " " & ESSAI & " " & " mot de passe invalide voulez-vous reprendre", vbRetryCancel + vbInformation, "Projet ibrah")
End If
If rep = vbRetry Then
' ESSAI donne sa valeur à compteur pourqu'il le compare à 3 juste à l'entrée de l'instruction
compteur = ESSAI
TextBox2 = ""
Else
End If
If compteur = 3 Then
MsgBox " Violation du Mot de Passe - vous êtes à votre troisième essai", vbInformation, "Projet ibrah"
End If
End Sub