Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Remplacer point par virgule

2 réponses
Avatar
rmill...
Bonjour,

Dans une plage formattée en nombre j'ai besoin de remplacer des points par des virgules par VBA,.

Si je passe par Excel ... donc que je sélectionne la plage et que je faire un rechercher le point et remplacer par la virgule ... tout est parfait.

J'utilise l'enregistreur de macro et je refais cette même opération. Toujours parfait.

Et lÍ  je prends le code que l'enregistreur de macros a produit et lorsque je l'applique ... lÍ  = problème. Je précise.

Dans les options d'Excel la case "Utiliser le séparateur système" est cochée. Dans Windows le séparateur Système est une virgule.

Lorsque je lance le code ... même pour les cellules avec une virgule comme décimale ... une apostrophe est ajoutée et lÍ  ça devient du texte, Pourtant ... pas de point ont été trouvés. Pourquoi alors une apostrophe est ajoutée?

Si Í  l'inverse le séparateur système est un point et que je remplace une virgule par un point ... tout est parfait.

Sauriez-vous comment éviter ceci et par code simplement remplacer le point par une virgule sans que des apostrophes soient ajoutées?

Merci Í  l'avance.

2 réponses

Avatar
MichD
Le 15/11/21 Í  16:50, a écrit :
Bonjour,
Dans une plage formattée en nombre j'ai besoin de remplacer des points par des virgules par VBA,.
Si je passe par Excel ... donc que je sélectionne la plage et que je faire un rechercher le point et remplacer par la virgule ... tout est parfait.
J'utilise l'enregistreur de macro et je refais cette même opération. Toujours parfait.
Et lÍ  je prends le code que l'enregistreur de macros a produit et lorsque je l'applique ... lÍ  = problème. Je précise.
Dans les options d'Excel la case "Utiliser le séparateur système" est cochée. Dans Windows le séparateur Système est une virgule.
Lorsque je lance le code ... même pour les cellules avec une virgule comme décimale ... une apostrophe est ajoutée et lÍ  ça devient du texte, Pourtant ... pas de point ont été trouvés. Pourquoi alors une apostrophe est ajoutée?
Si Í  l'inverse le séparateur système est un point et que je remplace une virgule par un point ... tout est parfait.
Sauriez-vous comment éviter ceci et par code simplement remplacer le point par une virgule sans que des apostrophes soient ajoutées?
Merci Í  l'avance.

Bonjour,
Soit la plage A1:A10 ayant un "point" comme séparateur décimal au lieu
d'avoir une "virgule". Les nombres s'affichent Í  gauche, étant
interprétés comme du texte. Pour modifier le séparateur décimal de la
plage A1:A10, il y a ceci :
'----------------------------------
Sub test()
With Worksheets("Feuil1")
With .Range("A1:A10")
.Replace What:=".", Replacement:=",", LookAt:=xlPart
.Replace What:=",", Replacement:=".", LookAt:=xlPart
End With
End With
End Sub
'----------------------------------
MichD
Avatar
MichD
Le 15/11/21 Í  17:26, a écrit :
Merci. Mais vraiment ceci ne fonctionne pas. Je viens de trouver ce qui suit par hasard et ... cela a fonctionné. Curieusement alors le point est remplacé par une virgule. Évidemment en ayant la virgule comme séparateur système dans Windows.
"Je crois savoir que ce sujet date un peu maintenant....mais au cas voici une solution que j'ai trouvé sur un autre forum et marche très bien...
Il s'agirait en fait d'un "bug" d'écriture VBA: il faut en effet écrire dans la macro de remplacer un point par un point:
Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse"

La procédure que je t'ai donnée fonctionne, il ne faut quand même pas
dire n'importe quoi. Que le séparateur décimal soit la virgule ou le
point dans les cellules de ladite plage.
Tant mieux pour toi, si tu as trouvé une autre solution!
MichD