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
3258
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
35751
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 juin 2022
358
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
35751
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 juin 2022
358
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
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
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