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

Messages postés
14
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
22 janvier 2009
- - Dernière réponse : 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.
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
661
Date d'inscription
vendredi 2 décembre 2005
Statut
Membre
Dernière intervention
23 mars 2011
8
3
Merci
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 

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_fauve
Messages postés
3288
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
0
Merci
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+
Commenter la réponse de gillardg
Messages postés
14
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
22 janvier 2009
0
Merci
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.
Commenter la réponse de fadan
Messages postés
14
Date d'inscription
jeudi 30 octobre 2008
Statut
Membre
Dernière intervention
22 janvier 2009
0
Merci
Bonjour,
Tout d'abord mille excuses pour le retard, et merci pour la reponse.
Je teste cela et j'en reviendrais
Merci
A+, fadan
Commenter la réponse de fadan
Messages postés
3
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
8 avril 2010
0
Merci
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
Commenter la réponse de NOURIILHAM
Messages postés
3
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
8 avril 2010
0
Merci
veuillez me contactez par adresse email svp
Commenter la réponse de NOURIILHAM