Remplacer une virgule par un point

Le
Phenix21
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:=False, SearchFormat:=False,
ReplaceFormat:=False

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 ;)
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #5390801
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
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 ;)


Misange
Le #5390781
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 ;)


Phenix21
Le #5390771
On 30 nov, 16:25, JB
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 ?

Phenix21
Le #5390731
On 30 nov, 16:35, 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



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...

Phenix21
Le #5390611
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 ?
Publicité
Poster une réponse
Anonyme