[résolu] Remplacer des points par des virgules

Verba_Tim

XLDnaute Occasionnel
Bonjour ^^
J'ai encore besoin de l'aide de nos très cher XLDnautes ^^
Je cherche à transformer des "." en "," dans une colonne spécifique qui ressemble un peu a ça:
181.120980
181.333012
181.572212
182.780741
183.020861
183.213021
183.452237
185.300657
185.540822
185.733026
185.972426
188.041067
188.241112
188.413171
188.612241
193.597298
193.692594
193.840015

J'ai donc essayé plusieurs choses comme:
Columns("D:D").Select
Selection.Find(What:=".", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.FindNext(After:=ActiveCell).Activate
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

ou encore

Columns("D:D").Select
With Application
.DecimalSeparator = ","
.ThousandsSeparator = " "
.UseSystemSeparators = False
End With

Le problème c'est que ça ne fonctionne pas...
Dans le premier cas je me retrouve avec des blancs séparateurs, et dans le deuxième je n'ai absolument rien de changé ^^"
Voyez vous un autre moyen de faire la transformation en VBA?

Merci d'avance ^^

Verba_Tim
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Remplacer des points par des virgules

Bonjour Verba_Tim,

Si je comprends bien, ce sont des nombres avec 5 décimal que tu veux mettre au format Européen ?

Ton code
Code:
ActiveCell.Replace What:=".", Replacement:=",", LookAt:=xlWhole, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
Tout seul, doit fonctionner ... il marche chez moi ;)

A+
 

hellnar

XLDnaute Junior
Re : Remplacer des points par des virgules

Bonjour,

Sans entrer dans le détail, juste une idée : Vba est en anglais, or dans cette langue, les points remplacent les virgules. Donc pour changer des points en virgules il faut remplacer les points ... par des points .Clairement, Vba comprend la question (remplacer un point) mais traduit la réponse, donc un point est une virgule.

Pour vérifier cela sur excel, il me faurt. Quitter l'IPAD.

A +

Hellnar
 

Pierrot93

XLDnaute Barbatruc
Re : Remplacer des points par des virgules

Bonjour,

essaye ceci, en supposant que tes données soient le résultat d'une importation de fichier et que le point soit utilisé comme séparateur de décimale dans ce même fichier :
Code:
Columns(4).TextToColumns Destination:=Range("D1"), DecimalSeparator:="."

bonne journée
@+

Edition : bonjour Bruno:), Helinar, un peu en retard moi...
 
Dernière édition:

hellnar

XLDnaute Junior
Re : Remplacer des points par des virgules

Bonjour,

Pour préciser ma proposition faite à partir de la tablette Apple (pas facile d'écrire là dessus)
Une macro enregistrée donne

Selection.CurrentRegion.Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

et elle ne marche pas
il suffit de changer la virgule par le point
Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

Ca marche très bien (attention cependant au format des nombres).
Voir également s'il n'y a pas nécessité auparavant de transformer en nombre les données (il peut y avoir des signes cabalistiques comme des espaces ou des caractères cachés).
Mais en général cela se passe bien.

Bonne journée

Hellnar
Bonjour à Pierrot93
 

Verba_Tim

XLDnaute Occasionnel
Re : Remplacer des points par des virgules

Re ^^
Merci Bruno, Hellnar et Pierro ^^
J'ai opté pour la solution de Pierro qui marche à merveille en plus d'être relativement courte >< Les autres ne soyez pas jaloux surtout hein :p

Merci en tout cas à vous trois!
Bonne journée! ;)

edit: Merci Hellnar, je prend note ^^ ça risque de me servir!
 

hellnar

XLDnaute Junior
Re : Remplacer des points par des virgules

Bonjour à nouveau,

Ce n'est pas que l'on serait jaloux (quoique...) mais la solution de Pierrot93 nécessite deux colonnes ce qui peut être gènant dans certains cas (ou d'allonger le processus).
Ma remarque est plus générale et donc à retenir dans d'autres cas (pour vous ou pour les autres lecteurs de cette discussion). Penser à la traduction des données de l'un dans l'autre.
Pareil par exemple pour les fonctions d'Excel utilisées dans VBA. SOMME par exemple devient SUM etc..

Bonne journée.

Hellnar
 

Verba_Tim

XLDnaute Occasionnel
Re : Remplacer des points par des virgules

De toute manière je ne vais pas faire le difficile ^^ ma missions est de diminuer le temps d'exécution... rien que le fait d'éviter à l'utilisateur de le faire manuellement je gagne du temps ^^ et le fais que j'ai réduis le temps d'exécution de 80% pour le reste de ma macro fais que l'utilisateur ne fera aucune remarque pour quelques secondes de plus ^^
Merci a tous de vous être penché si efficacement sur mon problème ^^
 

hellnar

XLDnaute Junior
Re : Remplacer des points par des virgules

Oups,
Effectivement, vous avez raison, cela marche très bien sur place.
En fait, la conversion dans Excel se fait toujours sur plusieurs colonnes. D'où ma réflexion.
Mais ici on utilise bien la fonction TextToColumns en ne convertissant que le format, donc pas besoin d'une colonne supplémentaire.
Cela peut toujours servir !
Ce qui est bien dans ce forum, c'est que l'on en apprend tous les jours.

Bonne journée
 

Discussions similaires

Réponses
1
Affichages
134

Statistiques des forums

Discussions
312 416
Messages
2 088 247
Membres
103 784
dernier inscrit
Métro-logue