Cherche un renvoi d'erreur quand valeurs numérique et caractères saisie en même

Résolu
knoech Messages postés 4 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 22 décembre 2008 - 22 déc. 2008 à 18:49
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 - 22 déc. 2008 à 23:34
Bonjour, je viens chercher un peu d'aide pour un petit soucis

Je cherche a ouvrir une fenêtre du type MsgBox "Vous ne devez saisir que du texte" quand l'utilisateur rentre du texte et des chiffres en même temps dans une TextBox...

J'arrive a retourner l'erreur et afficher l'erreur quand les valeurs numériques sont rentrées seules ("0125") ou au début de la chaine ('"14mois"), mais je n'y arrive pas quand les valeurs numériques sont écrites au milieu ou à la fin de la chaine par exemple : "lok01" ou "lo12erd"

Il me faudrait surement une fonction qui parcours la chaine de caractères et vérifie qu'il n'y a pas de valeurs numérique (avec IsNumeric) ou que des valeur alphabétique mais je ne trouve pas.

Merci de votre aide, en espérant avoir été clair dans mon explication.

8 réponses

MOUSSAOUIAAZIZ Messages postés 48 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 9 novembre 2009
22 déc. 2008 à 20:48
Salut;
je t'exscuse car tu debute en VB mais  est ce que tu a vue l'instruction Exit For ???

For i = 1 To Len(a)
    If    IsNumeric( Right(  Left(a,i)   ,1)   ) Then
      MsgBox "err"
      Exit For
    End If
Next i

Cette instruction permet de sortir de la boucle quand le premier chiffre apparaît
Et dans ce cas il envoi un message d’erreur et sort de la boucle donc plus d’autre message
3
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
22 déc. 2008 à 19:00
salut,

pourquoi tester après et non pas empêcher durant la saisie?

dans ce cas tu empêches la chaîne (au keydown ou keypress) si c'est un nombre
++

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
MOUSSAOUIAAZIZ Messages postés 48 Date d'inscription samedi 5 août 2006 Statut Membre Dernière intervention 9 novembre 2009
22 déc. 2008 à 19:46
salut;
solution possible, et voici une autre:
For i = 1 To Len(a)
    If    IsNumeric( Right(  Left(a, i)   ,1)   ) Then
      MsgBox "err"
      Exit For
    End If
Next i
comme ca tu va tester chaque caractere de ta chaine,
left("caractere",3) = "car"
right("car",1) = "r"
0
knoech Messages postés 4 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 22 décembre 2008
22 déc. 2008 à 20:17
Je ne sais pas empêcher la saisie de valeurs numériques, je débute en VB

Moussaouiaaziz j'ai déjà plus ou mois essayé cette solution et dans ce cas là cela renvoi plusieurs fenêtres msgbox si l'utilisateur rentre plus d'un chiffre? Car je voudrais une seule fenêtre qui signale d'erreur si c'est possible
0

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

Posez votre question
knoech Messages postés 4 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 22 décembre 2008
22 déc. 2008 à 21:01
A non en effet j'avais pas fait attention à ce petit détails, j'ai essayé rapidement cela fonctionne.

D'accords donc cela arrête le compteur dès qu'il trouve une erreur, bon j'étais pas trop loin il me manquais juste le "Exit For" mais bon quand on connais pas on peu chercher un moment...

Un grand Merci à vous 2

P.S: Il faut que j'accepte ta réponse pour mettre le sujet en résolu?
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
22 déc. 2008 à 22:59
Salut,

Je suis du même avis que PCPT(salut ), autant empêcher dessuite la saisie de numérique, au lieu de laisser l'utilisateur saisir et une fois qu'il à saisie de lui dire : ah non ! vous ne pouvez pas saisir de numérique !! veuillez recommencer !

Enfin bref, il est là une question de logique ^^

A+
Exploreur

 Linux a un noyau, Windows un pépin
    ** http://exploreur1.labrute.fr **
0
knoech Messages postés 4 Date d'inscription mercredi 17 décembre 2008 Statut Membre Dernière intervention 22 décembre 2008
22 déc. 2008 à 23:14
Je préfère indiquer l'erreur à l'utilisateur, plutôt que de le restreindre sans lui dire pourquoi...

Mais merci de l'info la prochaine fois j'essaierai, mais ici je trouve pas ça nécessaire, pour le moment...
0
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
22 déc. 2008 à 23:34
C'est pas dit....Si tu as par exemple un Label et un TextBox :

Nom(label) Zone de saisie(TextBox)

Tu vois bien que dans le textbox, tu ne va pas entrer de chiffre pour un nom....donc empêcher la saisie directement sans "informé" l'utilisateur...car l'information que l'utilisateur a, et le descriptif du label(nom), il sait par defaut, qu'il ne devrat saisir que des lettres ^^..enfin...c'est mon avis

A+
Exploreur

 Linux a un noyau, Windows un pépin
    ** http://exploreur1.labrute.fr **
0