Toujours avoir un point (.) à la place d'une virgule dans un textbox

Résolu
Triboutmatthieu Messages postés 206 Date d'inscription lundi 26 septembre 2005 Statut Membre Dernière intervention 9 juillet 2012 - 11 juin 2007 à 18:01
mfaure Messages postés 48 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 22 septembre 2011 - 2 juin 2008 à 11:19
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

Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
11 juin 2007 à 18:31
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.
3
Triboutmatthieu Messages postés 206 Date d'inscription lundi 26 septembre 2005 Statut Membre Dernière intervention 9 juillet 2012
11 juin 2007 à 18:56
euh là ça me provoque un gros bug c'est pas possible pourtant le code parait fonctionnel.

MT Productions
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
11 juin 2007 à 19:00
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.
0
Triboutmatthieu Messages postés 206 Date d'inscription lundi 26 septembre 2005 Statut Membre Dernière intervention 9 juillet 2012
11 juin 2007 à 19:12
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
0

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

Posez votre question
mfaure Messages postés 48 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 22 septembre 2011
2 juin 2008 à 11:19
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
0
Rejoignez-nous