Verifier la saisie numerique dans un textbox [Résolu]

Signaler
Messages postés
16
Date d'inscription
vendredi 19 mai 2006
Statut
Membre
Dernière intervention
31 mars 2011
-
Messages postés
16
Date d'inscription
vendredi 19 mai 2006
Statut
Membre
Dernière intervention
31 mars 2011
-
bonjour,

j ai lu pas mal de chose sur le sujet et je n'est pas bien compris quelle était la meilleur méthode pour verifier que la saisie d'un textbox est un nombre positif ou négatif(isnumeric,keyascii etc...).

j'ai programmé ma source sans avoir lu au préalable les infos dispo sur le site .
j'ai donc utilisé la méthode suivante :

1.j'affecte la saisie du textbox a une variable single :
2.si une erreur 13 se produit c que la saisie du textbox n'est pas un nombre
3. s'il y a erreur, je force le textbox a la valeur précédente ou a 0 ou .....

exemple:
   dim var as single
   on error goto gestion_erreur
   var=textbox.text
   exit sub
gestion_erreur :
   if err.number=13 then
      textbox.text=0
   end if

je n'ai pas vu ce type de méthode!! est-ce mal de faire cela?

merci du retour

7 réponses

Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
15
Ce n'est pas mal mais c'est du développement par exception qui lui est mal :)

La meilleure méthode est de dérivé ton controle (si tu es sous .NET) et faire ta règle dans le KeyPress que tu surcharges.


Si tu es en VB6, tu n'as qu'a faire la deuxième partie. Si la touche pressée n'est pas un chiffre alors tu ne changes pas le texte.

::|The S@ib|::
MVP C#.NET
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
15
En prenant soint de prendre en compte le caractère de séparation des décimales et unités (attention ce n'est pas forcément le '.'), et faisant attention à ne le faire appararaître qu'une fois :)

::|The S@ib|::
MVP C#.NET
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Ah oui, je l'avais zappé ça tiens :)
Me suis servi de la fonction en dessus pour des entiers, j'avais complètement oublié qu'on pouvait aussi s'en servir pour des nombres non entiers ^^
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
35
Et en faisant attention aussi d'autoriser le symbole des nombres négatifs (le - généralement) car le but étant quand même de saisir des nombres négatifs.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,


Regarde cette source, elle pourrait te venir en aide...


A+
Exploreur

 Linux a un noyau, Windows un pépin


 
Messages postés
527
Date d'inscription
lundi 15 octobre 2007
Statut
Membre
Dernière intervention
10 octobre 2013
1
Salut,

Private Sub TextNumero_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
        Case Asc("0") To Asc("9"), 8     'Le 8 c'est pour effacer  'On fait rien de spécial ici
        Case Else 
            KeyAscii = 0  'On "annule" l'action
    End Select
End Sub

En gros, ce qu'à dit TheSaib, mais en code :)
Messages postés
16
Date d'inscription
vendredi 19 mai 2006
Statut
Membre
Dernière intervention
31 mars 2011

merci pour votre aide,

dommage ca simplifié pas mal le code :-) mais je vai donc verifier à la saisie!

A+