Detecter erreur dans un TextBox à l'aide d'un While

Fermé
theGG - 5 déc. 2017 à 09:57
Whismeril Messages postés 18279 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 mars 2023 - 5 déc. 2017 à 16:17
Bonjour,

Je suis en train de réaliser un formulaire qui, dans un premier temps demande à l'utilisateur de saisir son nom et prénom, pour que je puisse les réutiliser afin de récuperer des information sur celui-ci.
Donc, j'ai besoin de bien verifier si l'utilisateur a bien saisi quelque chose , puis verifier s'il a n'a pas saisi des caractères numerique ou autres en plus.

erreur à détecter : "loic0" , " ", "125" , ....

le code que j'ai réaliser ne fonctionne plus une fois qu'un des deux champ est vide ou les deux.
Merci pour votre aide !

Private Sub Next_bmr_Click()

Dim Nom As String
Dim Prenom As String
Dim res As Boolean

res = False

Nom = TextBox1.Text
Prenom = TextBox2.Text

While res = False
If Nom <> "" And Prenom <> "" Then
res = True
MsgBox "Bienvenue " & Prenom & " " & Nom & "!"
Unload Me 'ou Unload Acceuil_1
Acceuil_2.Show
Else
MsgBox "Saisissez Votre Nom et Prénom"
res = False
End If
Wend
End Sub


5 réponses

Whismeril Messages postés 18279 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 mars 2023 888
5 déc. 2017 à 10:10
Bonjour,
quel VB?
  • VBS
  • VBA -> précisez:
    • Word
    • Excel
    • Access
    • Powerpoint
    • Autre
  • VB6 (ou antérieur, précisez)
  • VB.Net - précisez la Framework et ->
    • Winform
    • WPF


0
Hector_dome Messages postés 3 Date d'inscription mardi 5 décembre 2017 Statut Membre Dernière intervention 5 décembre 2017
Modifié le 5 déc. 2017 à 10:21
Bonjour Whismeril,

Autant pour moi, c'est du VBA Excel !

theGG
0
Whismeril Messages postés 18279 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 mars 2023 888
5 déc. 2017 à 10:42
Ok, vba c’est pas trop mon rayon.
Tu peux faire ça avec l’opérateur Like, ou avec une regex
http://regexstorm.net/tester?p=%5cb%5bA-Z%5d%5ba-z%5d*%5cb&i=Mot+des123etdeslettres+pasdemajuscule+Majuscule+CamelCase
0
Hector_dome Messages postés 3 Date d'inscription mardi 5 décembre 2017 Statut Membre Dernière intervention 5 décembre 2017
5 déc. 2017 à 10:58
Merci Whismeril, je prendrai le temps de vérifier avec regex ou Like.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be Messages postés 21304 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 1 325
5 déc. 2017 à 11:01
bonjour, "ne fonctionne plus" = ?
message d'erreur, comportement inattendu, ?
0
Hector_dome Messages postés 3 Date d'inscription mardi 5 décembre 2017 Statut Membre Dernière intervention 5 décembre 2017
5 déc. 2017 à 14:00
en fait, je souhaite que mon code me permet de faire ainsi :

une boite de dialogue s'affiche -> l'utilisateur saisi ou pas des information (ici Nom & Prénom) -> si tout est bon, on passe à l'étape suivante (cette partie marche bien ) -> si non , l'utilisateur n'a pas saisi une ou les deux infos demandées donc un msgbox apparait disant à l'utilisateur qu'il oublié de remplir une ou les deux case (( et c'est ici que mon code ne marche pas) .

donc quand le l'utilisateur ne saisi pas une des information demandées le msg box apparait, le but c'est quand on clique sur ok (le ok du msgbox) on retourne à la meme même boite de dialogue ou on demande les info, sauf qu'au lieu de quitter ca s'affiche de nouveau en boucle .

j'ai réécris le code d'une autre manière mais sans succès.


Private Sub Next_bmr_Click()

Dim Nom As String
Dim Msg2 As String
Dim Prenom As String
Dim res As Boolean

res = False
Msg2 = "N'hésitez pas à solliciter l'aide pour toute information."

Nom = TextBox1.Text
Prenom = TextBox2.Text

Do
If Nom <> "" And Prenom <> "" Then
res = True
Sheets("Feuil2").Range("A2") = Nom
Sheets("Feuil2").Range("B2") = Prenom
Sheets("Feuil2").Range("C2") = Prenom & "." & Nom & "@engie.com"
MsgBox "Bienvenue " & Prenom & " " & Nom & "!" & " " & Msg2

Unload Me 'ou Unload Acceuil_1
Acceuil_2.Show
Exit Do ' => Si réponse = Oui on sort de la boucle
End If
Loop While 1 = 1 ' => Boucle infinie


End Sub
0
yg_be Messages postés 21304 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023 1 325 > Hector_dome Messages postés 3 Date d'inscription mardi 5 décembre 2017 Statut Membre Dernière intervention 5 décembre 2017
5 déc. 2017 à 14:54
et en supprimant ces trois lignes, que se passe-t-il?
Do 
Exit Do ' => Si réponse = Oui on sort de la boucle 
Loop While 1 = 1 ' => Boucle infinie

 
0
Whismeril Messages postés 18279 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 mars 2023 888 > yg_be Messages postés 21304 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 mars 2023
5 déc. 2017 à 16:17
Ha oui, j’avais mal compris la question.
Yg_be a raison, il ne faut pas utliser une boucle (quelle qu’elle soit) car ça affiche le message et dès que tu cliques sur Ok, ça reboucle, reteste les valeurs que tu n’as pas eu le temps de modifier réafficher le message etc...

On voit que ton code est abonné à l’événement click d’un contrôle.
Sans boucle le message s’affiche, tu cliques sur ok, tu changes les valeurs et tu recliques sur le contrôle.
0