[VBA] Bizzarerie en manipulant des nombres

Le
ThierryP
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 standa=
rd) 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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
ThierryP
Le #26492410
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:lse, SearchFormat:lse, _
ReplaceFormat:lse
et le résultat est le même. Et ma cellule, qui était au form at 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
Le #26492459
Bonjour,
Après quelques tests, il semble que cela vienne du nombre de déci males. 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, je prend !!!
ThierryP
Publicité
Poster une réponse
Anonyme