Gestion d'erreur

enzo68290 Messages postés 109 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 juin 2011 - 7 sept. 2008 à 00:12
jean_marc_n2 Messages postés 170 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 24 janvier 2009 - 7 sept. 2008 à 16:43
Bonsoir tout le monde, mon problème est tout simple, j'ai un text box dans le quel l'utilisateur rentre ce qu'il veut

je voudrais forcer l'utilisateur à ne rentrer que des chiffres, j'ai déja changer le data format du textbox, mais sa ne sufit pas

pour faire la vérification je fais ceci :

text1.text = cdbl(text1.text)

j'obtien évidement une erreur quand l'utilisateur rentre des lettres

en attendant de savoir gerrer un numéro d'erreur précisement j'utilise : "on error goto lettre" et derrière je met un Msgbox ou j'informe l'utilisateur qu'il à rentrer des lettres, pas efficasse si on risque d'autre erreur que l'erreur numéro 13

je voudrais savoir comment gérrer un numéro d'erreur précisement, dans mon cas suite à cette ligne de code :

text1.text = cdbl(text1.text)

si quelqu'un peu m'informer sa me serais utile, merci et bonne soiré

8 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
7 sept. 2008 à 02:24
Salut,
Un truc que j' utilise souvent et qui marche toujours ..

Sub ...
Dim cText As Double

On Error Goto Err_Dbl
cText= cDbl(text1.text)
<Suite du traitement>
Exit Sub
Err_Dbl:
MsgBox Err.Description
'==> Rype Incompatible si le texte ne peut pas être convertit en 'double
End Sub

Tu peux persnnaliser le message pour être plus compréhensible pour l' utilisateur.
Tu dois aussi  incrémenter une autre gestion d' erreur pour la suite du traitement pour faire la distinction entre l' erreur dûe à la convertion avec une erreur probable suite au reste du traitement.

A+
<hr />

[] Ce qui va sans dire. va mieux en le disant.

<hr />
0
enzo68290 Messages postés 109 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 16 juin 2011
7 sept. 2008 à 11:28
en fait, tu n'a pas compris, ou pas totalement

je veux éviter d'utiliser la structure on error goto

faire un msgbox du numéro d'erreur sa ok je peu le faire et expliquer pourquoi, moi ce que je veux faire je veux gerrer l'erreur que j'obtien, et uniquement celle ci

j'ai un bout de code mais sa ne fonctionne pas :

sub

text1.text = CDbl(text1.text)
If (Err.Number = 13) then
      text1.text = ""
      msgbox "vous ne pouvez pas saisir de caractère dans votre champ", vbcritical, "Erreur de saisie"
      end if

end sub.

mon but étant de gerrer uniquement l'erreur 13, pour voir s'il y à d'autre erreur et les gérrer à leur tour par la suite
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
7 sept. 2008 à 11:31
Plutot que de gerer une quelconque erreur après coup, empeche tout simplement la saisie de caractères autres que les chiffres.

Utilise l'évènement KeyPress du textbox, si c'est pas un chiffre tu annule la saisie.

Fait une recherche, si ma mémoire est bonne, il y a plusieurs codes de ce style, ici ainsi que dans les snippets.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
7 sept. 2008 à 11:32
tiens par exemple : http://www.codyx.org/snippet_autoriser-saisie-chiffres-dans-champ-texte_119.aspx

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0

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

Posez votre question
dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
7 sept. 2008 à 13:06
 Bonjour a tous ,

Voici un petit code simple:
 -autorise que les nombres ou le textbox vide
 -Validation apres perte du focus.

------------------------------------------------------
Private Sub Text1_LostFocus()



 Dim Nombre
'supprime les espaces
 Text1.Text = Trim(Text1.Text)
 
 Nombre = Trim(Text1.Text)
'Message si pas un nombre
 If IsNumeric(Nombre) = False And Len(Nombre) <> 0 Then
      MsgBox "Entrez une valeur numérique !", vbCritical, "Erreur de saisie"
      Text1.Text = ""
      Exit Sub
 End If
 
End Sub
---------------------------------------------------------

A adapter
A++
0
jean_marc_n2 Messages postés 170 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 24 janvier 2009
7 sept. 2008 à 13:33
Bonjour,

Je signale l'existence du site http://faq.vb.free.fr/ qui est le site de la FAQ du groupe Visual Basic.
Ce site contient près de 200 articles répondant à une foule de questions.

Pour ta question en particulier, tu peux consulter par exemple:

"Comment créer une TextBox numérique ?" : http://faq.vb.free.fr/index.php?question=80

"COmment déterminer si ma chaîne de caractères est un nombre?" : http://faq.vb.free.fr/index.php?question=131

"Comment valider des données complexes ?" : http://faq.vb.free.fr/index.php?question=133

Cordialement,

Jean-marc
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
7 sept. 2008 à 14:49
jean_marc_n2
-> salut. j'ai pas oublié pour la faq...., juste pas eu une seconde ^^

tout vient à point.., paraît-il ;)




<hr size="2" width="100%" />
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp

 
0
jean_marc_n2 Messages postés 170 Date d'inscription jeudi 11 décembre 2003 Statut Membre Dernière intervention 24 janvier 2009
7 sept. 2008 à 16:43
Salut,

Pas de soucis, ... je sais attendre :o)

Cordialement,

JM
0
Rejoignez-nous