OVH Cloud OVH Cloud

Erreur d'Excel !?

3 réponses
Avatar
Bert
Bonjour à tous,

Je m'explique. Dans une routine je fais la boucle
For i = MaValeur to 0.01 steps MonPas
...
je copie la cellule A1 (cette cellule contient MaValeur, c'est un
pourcentage)
je colle la valeur en C1
...
next i

En fait a chaque fois que la boucle s'éxécute on copie la valeur
MaValeur contenue en A1 puis on la colle en C2 puis boucle suivante en
C3 ...

Excel me donne, pour MaValeur = 20% par exemple :
C1 0.2
C2 0.19
C3 0.18
C4 0.17
C5 0.16
C6 0.15
C7 0.14
C8 0.13
C9 0.12
C10 0.11
C11 0.0999999999
C12 0.0899999999
C13 0.0799999999
C14 .......
C15 .......
C16 .......
C17 .......
C18 .......
C19 0.0199999999
C20 rien alors que j'aurai voulu 0.01

Donc à partir de la valeur attendu 0.1, c'est faux, Excel se trompe d'1
millionnième, ou quelque chose comme ca !!

Moi cela m'étonne car je ne suis pas un expert, si l'un d'entre vous peu
expliquer comment Excel fonctionne dans ce cas particulier, je serais
interréssé d'en savoir plus.

Merci d'avance
Bertrand

3 réponses

Avatar
Alain CROS
Bonjour.

Sub SansBouclePourBert()
[C1] = [A1]
[C1:C20].DataSeries , , , -0.01
End Sub

Alain CROS

"Bert" a écrit dans le message de news:
Bonjour à tous,

Je m'explique. Dans une routine je fais la boucle
For i = MaValeur to 0.01 steps MonPas
...
je copie la cellule A1 (cette cellule contient MaValeur, c'est un
pourcentage)
je colle la valeur en C1
...
next i

En fait a chaque fois que la boucle s'éxécute on copie la valeur
MaValeur contenue en A1 puis on la colle en C2 puis boucle suivante en
C3 ...

Excel me donne, pour MaValeur = 20% par exemple :
C1 0.2
C2 0.19
C3 0.18
C4 0.17
C5 0.16
C6 0.15
C7 0.14
C8 0.13
C9 0.12
C10 0.11
C11 0.0999999999
C12 0.0899999999
C13 0.0799999999
C14 .......
C15 .......
C16 .......
C17 .......
C18 .......
C19 0.0199999999
C20 rien alors que j'aurai voulu 0.01

Donc à partir de la valeur attendu 0.1, c'est faux, Excel se trompe d'1
millionnième, ou quelque chose comme ca !!

Moi cela m'étonne car je ne suis pas un expert, si l'un d'entre vous peu
expliquer comment Excel fonctionne dans ce cas particulier, je serais
interréssé d'en savoir plus.

Merci d'avance
Bertrand


Avatar
Bert
J'ai oublié d'indiquer :
MonPas = 0.01

Merci
Avatar
Bert
Merci Alain.
J'ai exposé mon probleme de maniere simplifié et la boucle est, je
pense, incontournable.
J'ai reussi a contourner l'erreur produite par Excel. Pour ceux que ca
interesse (même si le titre du post n'est pas tres explicite) :


Je m'explique. Dans une routine je fais la boucle
For i = MaValeur to 0.0099999999999 (au lieu de 0.01) steps MonPas
...
je copie la cellule A1 (cette cellule contient MaValeur, c'est un
pourcentage)
je colle la valeur en C1
...
next i

En fait a chaque fois que la boucle s'éxécute on copie la valeur
MaValeur contenue en A1 puis on la colle
en C2 puis boucle suivante en C3 ...

ET finalement Excel me donne, pour MaValeur = 20% par exemple :
C1 0.2
C2 0.19
C3 0.18
C4 0.17
C5 0.16
C6 0.15
C7 0.14
C8 0.13
C9 0.12
C10 0.11
C11 0.0999999999
C12 0.0899999999
C13 0.0799999999
C14 .......
C15 .......
C16 .......
C17 .......
C18 .......
C19 0.0199999999
C20 0.0099999999 (au lieu de rien)

Excel se trompe toujours d'1 millionnième, ou quelque chose comme ca,
mais cela ne me pose plus probleme.

Bonne fetes
Bertrand