Bonjour,
Je suis en train de copier en vba des valeurs d'un fichier texte vers excel.
Ces valeurs sont des nombres à exactement 1 décimale pas plus. Et quand elles sont copiées dans excel, elles prennent des valeurs proches avec pleins de décimales. Par exemple : 4.6 devient 4,59999990463256, 31.6 devient 31,6000003814697, par contre parfois par exemple 11.0, ou 0.2 sont copiés tels quels.
Je sais normalement comment tronquer ou arrondir des nombres à virgule, donc je pourrais retrouver leur valeur précise d'origine, mais je me pose la question pourquoi un tel "désarrondi" ?
Mon code est le suivant :
Pensant que c'était la fonction Val() le problème, j'ai essayé avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Dim pluvio As Single ... numFile = FreeFile Open nomFichier For Input As numFile Do While Not EOF(numFile) Line Input #numFile, texte ... pluvio = Val(Mid(texte, 20, 6)) FeuilDonneesImportees.Cells(row, col + 1).Value = pluvio ...
Mais ça ne change rien...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ' Arrondi Val(...) à une décimale pluvio = Int(10 * Val(Mid(texte, 20, 6)) + 0.5) / 10
Je ne comprends pas, étant un peu matheux ça me perturbe de me dire que je dois copier en faussant leur valeur précise (pour certains seulement !) des nombres à une décimale, pour ensuite les réarrondir pour retrouver leur vraie valeur !!
si quelqu'un a une réponse ...
Merci![]()
Partager