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

freeman151248 16 Messages postés vendredi 19 mai 2006Date d'inscription 31 mars 2011 Dernière intervention - 6 nov. 2007 à 00:11 - Dernière réponse : freeman151248 16 Messages postés vendredi 19 mai 2006Date d'inscription 31 mars 2011 Dernière intervention
- 6 nov. 2007 à 10:27
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
Afficher la suite 

7 réponses

Répondre au sujet
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 6 nov. 2007 à 00:25
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de TheSaib
mstarsup5 527 Messages postés lundi 15 octobre 2007Date d'inscription 10 octobre 2013 Dernière intervention - 6 nov. 2007 à 00:44
+3
Utile
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 :)
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de mstarsup5
TheSaib 2369 Messages postés mardi 17 avril 2001Date d'inscription 26 décembre 2007 Dernière intervention - 6 nov. 2007 à 00:49
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de TheSaib
mstarsup5 527 Messages postés lundi 15 octobre 2007Date d'inscription 10 octobre 2013 Dernière intervention - 6 nov. 2007 à 00:53
+3
Utile
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 ^^
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de mstarsup5
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 6 nov. 2007 à 08:51
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_casy
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 6 nov. 2007 à 08:54
+3
Utile
Salut,


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


A+
Exploreur

 Linux a un noyau, Windows un pépin


 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Exploreur
freeman151248 16 Messages postés vendredi 19 mai 2006Date d'inscription 31 mars 2011 Dernière intervention - 6 nov. 2007 à 10:27
0
Utile
merci pour votre aide,

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

A+ 
Commenter la réponse de freeman151248

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.