Remplacer une "," par un "."

mikael2403

XLDnaute Junior
Bonjour à tous,

Pourquoi la méthode ci-dessous ne fonctionne pas ?

Private Sub Worksheet_Change(ByVal Target As Range)
Cells.Replace What:=",", Replacement:=".", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False
End Sub

Je voudrais remplacer une virgule par un point dans la cellule AG22 et que la modification se fasse dès que je sors de la cellule.

Merci pour votre aide.
 

Paritec

XLDnaute Barbatruc
Re : Remplacer une "," par un "."

Re Mikael

Private Sub Worksheet_Change(ByVal Target As Range)
If KeyAscii = 44 Then KeyAscii = 46 'remplace la virgule par le point
End Sub

excuses moi j'avais pas fais gaffe là c'est quand la feuille change alors que il y a 5 minute je t'ai donné pour la sélection !!
a+
Papou
 

mikael2403

XLDnaute Junior
Re : Remplacer une "," par un "."

Bonjour papou,

Merci pour ta réponse.
J'avais déjà essayé aussi cette méthode mais ça ne change rien à ma cellule.
Ma cellule est fusionnée, y a t-il un impact ?
Est-ce que le format de ma cellule peut rester en standard ou dois-je le changer ?

Quand j'entre 5,12345 via le clavier numérique, la virgule n'est pas modifiée par un point.

Merci.
 

LF4000

XLDnaute Nouveau
Re : Remplacer une "," par un "."

Bonjour mikael2403,

Tu peut essayer ceci, (ça change le séparateur de décimal)

Excel 2003:

Menu 'outils', 'options', Onglets 'International',

et place un point dans la case Séparateur de décimal.

bonne chance.

LF4000

P.S. moi j'ai déjà réglé un problème dans mon projet de cette façon...
 

excalibur

XLDnaute Impliqué
Re : Remplacer une "," par un "."

bonjour le fil as tu essaye comme cela !!!
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("ag22")) Is Nothing Then
Cells.Replace What:=",", Replacement:="."
End If
End Sub
 

mikael2403

XLDnaute Junior
Re : Remplacer une "," par un "."

Bonjour LF4000, bonjour excalibur,

La solution d'excalibur ne fonctionne pas non plus. J'ai toujours une virgule qui s'affiche.

La solution de LF4000 fonctionne correctement. Cependant, mon projet sera sur un serveur en réseau et plusieurs utilisateurs pourront y accéder. Est-ce que cette fonction ne s'applique-t-elle pas que sur l'excel que l'on paramètre ou l'option est enregistré sur le fichier en lui même ?

Mikael
 

Guiv

XLDnaute Occasionnel
Re : Remplacer une "," par un "."

Bonsoir Mikael2403, le fil
Selon ce que tu cherches à faire, en format texte ça marche :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("AG22")) Is Nothing Then

Target.NumberFormat = "@"
Target = Replace(Target, ",", ".")

End If
End Sub


Bonne soirée
Guiv
 

Guiv

XLDnaute Occasionnel
Re : Remplacer une "," par un "."

Re,
Ou peut-être pour faire fonctionner la solution de LF4000 pour tous ceux qui ouvrent le fichier, à placer dans WorkBook_Open :

With Application
.DecimalSeparator = "."
.ThousandsSeparator = " "
.UseSystemSeparators = False
End With


et annuler en WorkBook_BeforeClose

(merci l'enregistreur de macros...)

Guiv
 

Discussions similaires

Réponses
1
Affichages
127

Statistiques des forums

Discussions
312 235
Messages
2 086 476
Membres
103 227
dernier inscrit
maloalek