Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Bizzarerie en manipulant des nombres

2 réponses
Avatar
ThierryP
Bonjour le forum,

Dans un fichier CSV, j'ai des donn=C3=A9es 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=C3=A9cial valeurs) dans une feuille (format standa=
rd) et je fais un remplacement des "." par des virgules, et j'obtiens =C3=
=A7a :
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:=3D".", Replacement:=3D",", LookAt:=3DxlPart, _
SearchOrder:=3DxlByRows, MatchCase:=3DFalse, SearchFormat:=3DFalse, _
ReplaceFormat:=3DFalse
Si je fais l'op=C3=A9ration =C3=A0 la main, =C3=A9videmment 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=
=C3=A0 ce que =C3=A7a donne en VBA :
Selection.Replace What:=3D".", Replacement:=3D",", LookAt:=3DxlPart, _
SearchOrder:=3DxlByRows, MatchCase:=3DFalse, SearchFormat:=3DFalse,=
_
ReplaceFormat:=3DFalse
A l'oeil nu, je ne vois pas de diff=C3=A9rence, non ????

Si quelqu'un a une piste avant que je ne devienne compl=C3=A8tement fou....=
.
Merci d'avance !!!
ThierryP

2 réponses

Avatar
ThierryP
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 :
Avatar
ThierryP
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