Controler l'entrée des décimals dans un textbox en vb 2008 express

Résolu
fadan Messages postés 14 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 22 janvier 2009 - 11 nov. 2008 à 12:07
NOURIILHAM Messages postés 3 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 8 avril 2010 - 8 avril 2010 à 02:15
Bonjour le forum.
Je viens de découvrir, VB 2008 express.
Et étant débutant en programation, je cale sur le contrôle de saisies dans un textBox.
En effet, j'aimerai limiter la saisie à 1 chiffre après la virgule dans un textBox . (c'est un calcul de kilomètrage)
exemple: la saisie doit etre 1000,1 et non 1000,11.
De plus cela serait magique si la saisie se met automatiquement au format "##,###,###.#" (99.999.999,9) dans le textBox.
Un grand merci d'avance, d'un nouveau passionné.
Fadan.

6 réponses

cs_fauve Messages postés 661 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 23 mars 2011 8
17 nov. 2008 à 20:16
Salut,

Voici un autre moyen de procéder :

(Note : Le code ci-dessous doit être mis dans l'évènement KeyPress de la TextBox)

If IsNumeric(TextBox1.Text) = True Then
' On teste si la valeur dans la TextBox1 est un nombre
     If CStr(CDbl(TextBox1.Text) - CInt(TextBox1.Text)).Length = 3 Then
          ' La valeur '3' a été choisi car elle obéit à la règle suivante : nombre de décimal max + 2
          ' On soustrait le nombre contenu dans TextBox1 par son entier
          ' On convertit le résultat en String
          ' Et on vérifie la longueur
          ' Voir exemple ci-dessous pour plus de détail

               If e.KeyChar <> "�8;" Then
                   ' On autorise le retour en arrière pour modifier la valeur
                   e.KeyChar = ""
                   ' Si on ne fait pas de retour en arrière
                   ' on change le dernier caractère rentré par rien du tout
               End If
               Exit Sub
     End If
End If

        ' Exemple :

        ' Nombre contenu dans TextBox1 : 10,5
        ' 10,5 - 10 = 0,5
        ' Conversion de 0,5 en string
        ' On vérifie la longueur (0,5 comporte 3 caractères)
        ' La condition " If CStr(CDbl(TextBox1.Text) - CInt(TextBox1.Text)).Length = 3 " est vraie
        ' Si on a pas appuyer sur la touche Retour en arrière pour effacer (verifié par la condition " If e.KeyChar <> "�8;" ")
        ' On remplace le caractère tapé par ""car on a 1 chiffre après la virgule

++

Fauve
Pensez : Réponse Acceptée 
3
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
11 nov. 2008 à 12:51
Bonjour,

utilise le contrôle MaskedTextBox
pour ton format, c'est la propriété Mask que tu dois définir à Custom et entrer ton ##,###,###.#

a+
0
fadan Messages postés 14 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 22 janvier 2009
11 nov. 2008 à 17:04
Merci pour la réponse, mais... il y a toujour un mais.....
Car  avec le contrôle MaskedTextBox, même s'il est magique on est obligé de rentrer la totalité par exemple pour 1.234,5 on doit entrer 00.001.234,5
Encore un mais... Mais je pense que je vais suivre ton conseil car pour l'instant je fais juste un petit programme de 2 entrées et 1 affichage qui irons dans une basse pour ensuite récuperer. Pour apprendre comment cela se passe avant d'aller plus loin. Donc je reviendrai souvent sur se forum qui est génial.
Mais encore mille merci.
fadan.
0
fadan Messages postés 14 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 22 janvier 2009
27 nov. 2008 à 12:57
Bonjour,
Tout d'abord mille excuses pour le retard, et merci pour la reponse.
Je teste cela et j'en reviendrais
Merci
A+, fadan
0

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

Posez votre question
NOURIILHAM Messages postés 3 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 8 avril 2010
8 avril 2010 à 01:54
salut je voulais bien avoir le code du entrer ,si je clic sur entrer le code du bouton sera exécuté a savoir que j'utilise vb2008
0
NOURIILHAM Messages postés 3 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 8 avril 2010
8 avril 2010 à 02:15
veuillez me contactez par adresse email svp
0
Rejoignez-nous