cerhu > microsoft.* > microsoft.excel

ThierryP (11/10/2018, 14h46)
Bonjour le forum,

Dans un fichier CSV, j'ai des données sous cette forme :
0.0
3.24649
6.36953
17.9411
24.3568
30.9492
37.1911
40.0334
39.9754

Je les copie (collage spécial valeurs) dans une feuille (format standard) et je fais un remplacement des "." par des virgules, et j'obtiens ça :
0,0
324 649
636 953
179 411
243 568
309 492
371 911
400 334
399 754
La ligne de commande :
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Si je fais l'opération à la main, évidemment j'obtiens ceci :
0
3,24649
6,36953
17,9411
24,3568
30,9492
37,1911
40,0334
39,9754
Et en utilisant l'enregistreur de macros pendant cette manip manuelle, voilà ce que ça donne en VBA :
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False,_
ReplaceFormat:=False
A l'oeil nu, je ne vois pas de différence, non ????

Si quelqu'un a une piste avant que je ne devienne complètement fou......
Merci d'avance !!!
ThierryP
Jacquouille (11/10/2018, 16h37)
Bonjour Thierry

Fais un peu une recherche sur le code du caractère ".", càd le 2° ou 3° car
de tes nombres.
Ensuite, dans ton VBA, remplace le"." par son n° de code.
Quelle est la police utilisée?
Ensuite, on verra

Jacques
" Le vin est au repas ce que le parfum est à la femme."
..
"ThierryP" a écrit dans le message de groupe de discussion :
cafd9839-e90b-4c22-9afb-cd794b0d39a2...

Bonjour le forum,

Dans un fichier CSV, j'ai des données sous cette forme :
0.0
3.24649
6.36953
17.9411
24.3568
30.9492
37.1911
40.0334
39.9754

Je les copie (collage spécial valeurs) dans une feuille (format standard) et
je fais un remplacement des "." par des virgules, et j'obtiens ça :
0,0
324 649
636 953
179 411
243 568
309 492
371 911
400 334
399 754
La ligne de commande :
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Si je fais l'opération à la main, évidemment j'obtiens ceci :
0
3,24649
6,36953
17,9411
24,3568
30,9492
37,1911
40,0334
39,9754
Et en utilisant l'enregistreur de macros pendant cette manip manuelle, voilà
ce que ça donne en VBA :
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
A l'oeil nu, je ne vois pas de différence, non ????

Si quelqu'un a une piste avant que je ne devienne complètement fou.....
Merci d'avance !!!
ThierryP
ThierryP (11/10/2018, 17h46)
Bonsoir Jacques,

Merci pour la piste.... même si rien ne change !
Donc, code ASCII = 46
Je fais :
Selection.Replace What:=Chr(46), Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
et le résultat est le même. Et ma cellule, qui était au format standard devient une cellule avec séparateur de milliers et zéro décimales.....

ThierryP

Le jeudi 11 octobre 2018 16:37:25 UTC+2, Jacquouille a écrit :
ThierryP (12/10/2018, 09h35)
Bonjour,

Après quelques tests, il semble que cela vienne du nombre de décimales. Si j'ai plus de deux décimales, Excel ne comprend plus !!!

Un petit arrondi et tout ira bien ! Mais si quelqu'un a une explication, jeprend !!!
ThierryP
Discussions similaires
Bizzarerie NTP

Script manipulant du texte en se servant d'un csv

Comment calculer tous les nombres entre deux nombres donnés ?

Conversion impossible de nombres stockés en Texte, en nombres ??? Pourquoi ?


Fuseau horaire GMT +2. Il est actuellement 22h01. | Privacy Policy