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

Signaler
Messages postés
4
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
22 décembre 2008
-
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
-
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

Messages postés
48
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
9 novembre 2009

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
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
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 
Messages postés
48
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
9 novembre 2009

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"
Messages postés
4
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
22 décembre 2008

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
Messages postés
4
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
22 décembre 2008

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?
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
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 **
Messages postés
4
Date d'inscription
mercredi 17 décembre 2008
Statut
Membre
Dernière intervention
22 décembre 2008

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...
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
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 **