Toujours avoir un point (.) à la place d'une virgule dans un textbox [Résolu]

Signaler
Messages postés
207
Date d'inscription
lundi 26 septembre 2005
Statut
Membre
Dernière intervention
9 juillet 2012
-
Messages postés
48
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
22 septembre 2011
-
bonjour je réalise un programme en vb6 avec excel.
Mon userform va récupérer un chiffre dans un case exemple "a1" pour le mettre dans un textox; hors j'aimerais que si j'écris dans un textbox si je met une virgule, je veux que ce soit un point qui s'affiche et si l'user form charge "12,3" je veux que mon textbox affiche "12.3"
en gros je veux toujours remplacer une virgule par un point.
Merci d'avance ce problème me cause un bug alors je veux plus de virgule dans un textbox

MT Productions

5 réponses

Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
6
Salut,
Il te suffit d'utiliser la fonction Replace dans l'évènement Changed du TextBox :

Textbox1.Text = Replace(Textbox1.Text, ",", ".")

<hr size="2" width="100%" />Julien.
Messages postés
207
Date d'inscription
lundi 26 septembre 2005
Statut
Membre
Dernière intervention
9 juillet 2012

euh là ça me provoque un gros bug c'est pas possible pourtant le code parait fonctionnel.

MT Productions
Messages postés
883
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
3 mars 2009
6
Oups excuse moi je suis bête j'ai oublié quelque chose d'essentiel...


En fait le gros bug vient du fait qu'on change la valeur de Textbox.text dans l'évènement changed, il s'appelle donc à l'infini jusqu'à plus de pile et ça "gros bug"...


Pour parer à ça, il suffit d'ajouter une condition :


If InStr(Textbox1.Text, ",")>0 Then
Textbox1.Text = Replace(Textbox1.Text, ",", ".")
End If





<hr width="100%" size="2" />


Julien.
Messages postés
207
Date d'inscription
lundi 26 septembre 2005
Statut
Membre
Dernière intervention
9 juillet 2012

euh ben en fait ça marche sans la deuxième solutionscar c'est moi qui avez merdé.
Mon textbox s'appel "Temp1" et j'avais mis:

Temp1.Text = Replace(Textbox1.Text, ",", ".")
alors que j'aurais du mettre:
Temp1.Text = Replace(Temp1.Text, ",", ".")

c'est moi qui n'avais pas fait attention je suis naz c'est une faute de débutant.
En tout cas merci de tes réponses très très rapide.

MT Productions
Messages postés
48
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
22 septembre 2011

Salut,

tu peut egalement utiliser l'evenement keypress de ta textbox, ca te donnerait ca :
Private Sub Temp1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)        If KeyAscii 44 Then KeyAscii 46
End Sub

 Cet evenement recupere le code ascii et s'il identifie le code de la virgule alors il le remplace par un point. Tu peux utiliser cette event pour controller les type de characteres entres ds les textbox (que des chiffres par exemple, cad que pour tous les codes ascii ne correspondant pas a des chiffres, tu pass KeyAscii a 0)

Max