Remplacerun point par une virgule

Résolu
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 - Modifié par jordane45 le 31/08/2014 à 12:43
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 1 sept. 2014 à 12:52
Bonjour,

dans mon code qui devrait fonctionner j'essaie de remplacer la saisie d'un point dans mon textbox par une virgule
   " Private Sub TXT_CONSO_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TXT_CONSO.KeyPress
        If e.KeyChar = "." Then
            Replace(TXT_CONSO.Text, ".", ",")
        End If
    End Sub"

Ce textbox est ensuite converti en double pour un calcul
Mon code en mode débogage intercepte le fait qu'un point est saisi passe au replace mais la rien ne se passe
Merci pour votre aide

--

7 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
31 août 2014 à 12:43
Lorsque tu postes du code, merci d'utiliser la coloration syntaxique.
Voir ici :http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
31 août 2014 à 12:47
Bonjour,

La fonction replace fonctionne de la manière suivante :
nouvelleChaine = machainedorigine.replace(ancienCar,nouveauCar)


http://msdn.microsoft.com/fr-fr/library/czx8s9ts%28v=vs.110%29.aspx

Donc:
Dim str as String =TXT_CONSO.Text
TXT_CONSO.Text = str.Replace(".", ",")


0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
31 août 2014 à 13:17
Merci bcp
je test et jereviens

--
0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
31 août 2014 à 13:21
Désolé mais j'ai exactement le même résultat
je cherche pourquoi le changement ne se fait pas

--
0

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

Posez votre question
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
31 août 2014 à 13:28
J'ai trouvé et ça marche merci Jordane45
j'ai simplement déplacé le replace a la verif saisie de mon code


--
0
dartagnan43 Messages postés 45 Date d'inscription samedi 31 mai 2008 Statut Membre Dernière intervention 26 février 2015 2
Modifié par dartagnan43 le 1/09/2014 à 08:20
le top du top c'est d'écrire dans l'evenement press key du textbox correspondant le code suivant

Private Sub TXT_CONSO_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TXT_CONSO.KeyPress
e.KeyChar = Replace(e.KeyChar, ".", ",")
End Sub

--
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
1 sept. 2014 à 12:52
Bonjour

Avant de modifier le séparateur décimal il faudrait vérifier si c'est
bien une virgule
dim flagvirgule as boolean
If My.Application.Culture.NumberFormat.NumberDecimalSeparator = "," Then
flagvirgule = true
else
flagvirgule = false
End If

et ensuite sers toi du flagvirgule
Private Sub TXT_CONSO_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TXT_CONSO.KeyPress
if flagvirgule then
e.KeyChar = Replace(e.KeyChar, ".", ",")
end if
End Sub
0
Rejoignez-nous