remplacer virgule par point

  • Initiateur de la discussion Kaliman
  • Date de début
K

Kaliman

Guest
Bonjour,

Je cherche ds une macro à remplacer les point par des virgules ds une colonne.J'ai enregistré ceci avec l'enrgistreur mais ça ne fonctionne pas en macro (si je fais la même chose en manuel, ça fonctionne !!??) :
Selection.Replace What:=',', Replacement:='.', LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Donneé ds la colonne (stocké au format texte) :
-12746156,51
-871963,12
1425635,89
-183076,84
156546,58
-7551,30
2155561,34
14606,92
396738,21
59918,18
20613,11
-1553
11576
5196290,48
113265,80
5997,50
6403,00

Quelqu'un à une idée ?
Merci
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Kaliman, le Forum

Si tu vas dans l'ancien Forum XLD :

=> Ce lien n'existe plus

... Et que tu utilises le Moteur de Recherche de ce Forum là avec les mots clefs 'remplacer virgule par point'...

...Tu devrais trouver ton bonheur... Car ce sujet est récurrant dans le Forum.

Bonne Recherche
@+Thierry
 

jduv

XLDnaute Nouveau
Bonjour
C'est zarb moi ca marche (Excel2002)
Code:
    Selection.Replace What:=',', Replacement:='.', LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
Peut être un probléme au moment de ta selection ??
 
K

Kaliman

Guest
Ca ne marche pas... :-(
Je joins un fichier avec les données en colonne A.
Si qq1 à une idée...

Merci
[file name=Int.zip size=19182]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Int.zip[/file]
 

Pièces jointes

  • Int.zip
    18.7 KB · Affichages: 42
K

Kaliman

Guest
Re,

Tjs le même pb....
Mais cette fois je joins le classeur avec données + macro qui ne fonctionne pas... :-(

Merci pour votre aide [file name=Int_20050307175031.zip size=18997]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Int_20050307175031.zip[/file]
 

Pièces jointes

  • Int_20050307175031.zip
    18.6 KB · Affichages: 49

Abel

XLDnaute Accro
Bonjour Kaliman, le fil,

C'est peut être que, malgré le remplacement, les données sont toujours considérées en numérique. Donc elles restent avec la virgule.

Si c'est ça, deux solutions :
- remplace la virgule par le point dans les paramètres régionaux mais ce peut être gênant pour la suite,
- ajoute Selection.NumberFormat = '@' si ce n'est pas gênant pour la suite de ton code car les informations seront considérées comme du texte.
Dans ce cas tu peux utiliser la fonction Val(Range (LaCellule)) pour obtenir le contenu en numérique.


Je n'ai pas la science infuse, il y a sans doute d'autres pistes.

En espérant que cela te dépanne.

Abel.

Message édité par: Abel, à: 07/03/2005 18:09
 

Gibson94

Nous a quitté
Repose en paix
Bonjour Kaliman, Rob_air et le gentil forum

En remontant les jours précédants, j'ai trouvé ce post qui d'après le dernier message n'a pas été résolu.
Je me permets de le remettre au goût du jour avec ces quelques lignes. Le principe est simple, comme la colonne est en texte, il suffit pour qu'Excel ne traduise pas les données en nombre de rajouter une lettre avant de changer la virgule en point et de supprimer cette lettre après le changement.

For Each c In Range('A2:A13') ' sélection de la plage à définir
c.Value = 'D' & c.Value
Selection.Replace What:=',', Replacement:='.', LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
c.Value = Right(c.Value, Len(c.Value) - 1)
Next c

Voilà, pour moi çà serait çà le fin mot.....mais pour vous ?
 
C

Canardo

Guest
Bonsoir,bonsoir

Rêvé-je?

supprimer 1 virgule ds un nombre!!

C'est tout bonnement impossible! ce n'est pas du txte, c'est une fraction d'unité! pour 'supprimer' une virgule dans un nombre, il faut soit le tronquer, soit l'arrondir, à l'unité supérieure ou inférieure.

Il y a pour ça plusieurs méthodes. Si tu as un instant je vais regarder ton fichier et te faire le truc, à moins qu'un joyeux con-tributeur ne le fasse entre-temps.

A+
 
C

Canardo

Guest
Re bonsoir

ça a été un peu long parce que j'ai cliqué trop vite sur l'enregistrement et je retrouvais plus le fichier.

est-ce que cela te convient?

A+ [file name=int retour_20050514204241.zip size=43927]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/int retour_20050514204241.zip[/file]
 

Pièces jointes

  • int retour_20050514204241.zip
    42.9 KB · Affichages: 50

Gibson94

Nous a quitté
Repose en paix
bonsoir canardo et re le forum

Excuse-moi ,mais à aucun moment, dans ce fil, on parle de transformer l'apparence d'un nombre.

Ici, on a uniquement du texte, qui lui a l'air vraiment d'un nombre. Il faudrait que l'auteur nous le dise. Pour moi, j'ai supposé qu'il pourrait s'agir effectivement d'une copie de nombres mais pas pour des calculs quelconques, mais seulement un look avec des points destiné à l'impression.
 

Monique

Nous a quitté
Repose en paix
Bonjour,

Par formules.
Ton séparateur est le point, et tu as des données avec une virgule et au format texte :
=SUBSTITUE(A2;',';'.')*1

Ton séparateur est la virgule, et tu as des données avec un point et au format texte :
=SUBSTITUE(A2;'.';',')*1
 
C

Canardo

Guest
Pardon,

Je croyais vraiment qu'il s'agissait de nombres.

En tous cas la formule = tronque(A2) fonctionne, ainsi que la macro avec MaValeur=Int(activecell.value)

Sub Entiers()
Range('A2').Select
While ActiveCell <> ''
MaVal = Int(ActiveCell.Value)
ActiveCell.Offset(0, 1) = MaVal
ActiveCell.Offset(1, 0).Select
Wend
Range('A2').Select
End Sub

Tu peux inscrire le résultat dans une autre colonne ou mm le mettre directement à la place de la valeur précédente si tu ne veux pas la garder.

Enfin, si j'ai bien compris qu'on ne voulait garder que la partie entière du nombre.

sinon, si on veut multiplier par cent, les valeurs décimales, c'est tt aussi simple. Mais complètement faux, ou fou, ou les deux

:silly:
 

Discussions similaires

Réponses
1
Affichages
127

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote