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

Remplacer une virgule par un point

5 réponses
Avatar
Phenix21
Bonjour =E0 tous, et merci d'avance de vous pencher sur mon souci ;)

Pour exposer mon probl=E8me : je r=E9cup=E8re via VBA des donn=E9es dans un
classeur, 2 colonnes plus exactement.

Lors de l'importation de la premi=E8re colonne, Excel 2003 me transforme
les "1.3" en "1,3" et j'aimerais pouvoir faire l'inverse.

J'ai test=E9 ceci, via l'enregistreur de macro :

Columns("A:A").Select
Cells.Replace What:=3D",", Replacement:=3D".", LookAt:=3DxlPart,
SearchOrder _
:=3DxlByRows, MatchCase:=3DFalse, SearchFormat:=3DFalse,
ReplaceFormat:=3DFalse

mais =E7=E0 ne fonctionne pas.

Je suis =E9galement tomb=E9 sur ce post dans ce forum
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread=
/e0f10e51700f06b2/597f180ed9eed20d?hl=3Dfr&lnk=3Dgst&q=3Dremplacer+un+caract=
%C3%A8re#597f180ed9eed20d,
mais j'avoue que je n'y ai pas compris grand chose !

Merci ;)

5 réponses

Avatar
JB
Bonjour,

For Each c In [A:A].SpecialCells(xlCellTypeConstants, 1)
c.NumberFormat = "@"
c.Value = Replace(c.Text, ",", ".")
Next c

JB

On 30 nov, 16:11, Phenix21 wrote:
Bonjour à tous, et merci d'avance de vous pencher sur mon souci ;)

Pour exposer mon problème : je récupère via VBA des données dans u n
classeur, 2 colonnes plus exactement.

Lors de l'importation de la première colonne, Excel 2003 me transforme
les "1.3" en "1,3" et j'aimerais pouvoir faire l'inverse.

J'ai testé ceci, via l'enregistreur de macro :

Columns("A:A").Select
Cells.Replace What:=",", Replacement:=".", LookAt:=xlPart,
SearchOrder _
:=xlByRows, MatchCase:úlse, SearchFormat:úlse,
ReplaceFormat:úlse

mais çà ne fonctionne pas.

Je suis également tombé sur ce post dans ce forumhttp://groups.google. fr/group/microsoft.public.fr.excel/browse_thread...,
mais j'avoue que je n'y ai pas compris grand chose !

Merci ;)


Avatar
Misange
Bonjour,
Tu dis que c'est excel qui change tes 1.3 en 1,3 à l'importation ?
Si je comprends bien, tes données initiales sont dans le format que tu
souhaites à la fin et c'est excel qui les modifie à l'import ?
Quand tu fais l'importation, à la fin, tu as un bouton intitulé
"avancé". Il te permet de spécifier comment traiter les séparateurs de
milliers et les séparateurs décimaux. Ragarde si tu n'aurais pas
bidouillé par là ;-)
Misange

Bonjour à tous, et merci d'avance de vous pencher sur mon souci ;)

Pour exposer mon problème : je récupère via VBA des données dans un
classeur, 2 colonnes plus exactement.

Lors de l'importation de la première colonne, Excel 2003 me transforme
les "1.3" en "1,3" et j'aimerais pouvoir faire l'inverse.

J'ai testé ceci, via l'enregistreur de macro :

Columns("A:A").Select
Cells.Replace What:=",", Replacement:=".", LookAt:=xlPart,
SearchOrder _
:=xlByRows, MatchCase:úlse, SearchFormat:úlse,
ReplaceFormat:úlse

mais çà ne fonctionne pas.

Je suis également tombé sur ce post dans ce forum
http://groups.google.fr/group/microsoft.public.fr.excel/browse_thread/thread/e0f10e51700f06b2/597f180ed9eed20d?hl=fr&lnk=gst&q=remplacer+un+caract%C3%A8re#597f180ed9eed20d,
mais j'avoue que je n'y ai pas compris grand chose !

Merci ;)


Avatar
Phenix21
On 30 nov, 16:25, JB wrote:
Bonjour,

For Each c In [A:A].SpecialCells(xlCellTypeConstants, 1)
c.NumberFormat = "@"
c.Value = Replace(c.Text, ",", ".")
Next c

JB



Merci beaucoup JL, la macro fontionne !

Par curiosité, il est possible d'aménager ce que j'ai fait pour que ç à
fonctionne ? Sinon où ce trouve le souci ?

Avatar
Phenix21
On 30 nov, 16:35, Misange wrote:
Bonjour,
Tu dis que c'est excel qui change tes 1.3 en 1,3 à l'importation ?
Si je comprends bien, tes données initiales sont dans le format que tu
souhaites à la fin et c'est excel qui les modifie à l'import ?
Quand tu fais l'importation, à la fin, tu as un bouton intitulé
"avancé". Il te permet de spécifier comment traiter les séparateurs de
milliers et les séparateurs décimaux. Ragarde si tu n'aurais pas
bidouillé par là ;-)
Misange



Je les récupère sans ouvrir le fichier source, via une fontion VBA
qu'on m'avait conseillé sur ce forum et qui s'intitule
GetValuesFromAClosedWorkbook

Donc je ne passe pas par l'utilitaire d'importation d'excel

question subsidiaire : j'utilise un outil de cmparaison des valeurs de
2 cellules via 'If feu2.Cells(j, 1) = feu1.Cells(i, 1)
comment faire pour que VBA respecte la casse et ne confonde pas 1.1 et
1.12 ? peut être en rajoutant un .Value à la fin des comparaisons...

Avatar
Phenix21
voilà la macro de récupération

With ActiveSheet.Range(cellRange)
.Formula = "='" & fPath & "[" & fName & "]" & sName & "'!" &
cellRange
.Value = .Value
End With


j'ai un deuxième souci, en relation avec le premier : les chiffres
1.10, 1.20 and co sont transformés en 1.1 et 1.2...

est ce que le value ci dessus ne devrait pas faire un collage
spécial ?