Bonjour à tous,
En premier lieu, merci pour l'aide que vous fournissez sur ce forum. J'ai commencé le VBA il y a tout juste 2 mois et les (très) nombreuses discussions de ce forum m'ont permis de venir à bout de tous mes problèmes....excepté le suivant :
J'ai crée une petite macro (ultra simple) pour générer une liste de valeurs (de 0.00 à 3.50) par incrémentation :
Cependant, il apparait dans la dite liste des valeurs "parasites" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 'INCREMENTATION POUTRE : X0 = 40 ' Ligne de départ de l'incrémentation CPa = 7 ' Colonne Position absolue Ltot = Range("E11").Value ' Longueur totale de la poutre Do Cells(X0 + 1, CPa) = Cells(X0, CPa) + 0.01 X0 = X0 + 1 Loop Until Cells(X0, CPa) >= Ltot
Ex : 0,820000000000001 en lieu et place de 0,82 ou encore 3,45999999999997 pour 3,46 attendu et cela me pose d'énormes problèmes pour la suite. Ce qui est étrange, c'est que cela ne le fait pas pour toute la liste...
Je ne pense pas que l'erreur vienne du code car je l'ai utilisé à de multiples reprises et l'erreur n'apparait qu'aléatoirement. Par contre, j'ai pu constater que cette même erreur se produisait également (et toujours aléatoirement) quand "j'imposais" une valeur :
Ex : Si delta < 5 alors Cellule A1 = 0,7 et la valeur que je lis en A1 après avoir fait tourner la macro est 0.69999999999997...!!!!?
Je ne sais pas du tout d'où peut venir cette imprécision.
Bref, dans un souci de clarté, ma question est la suivante :
Comment faire en sorte que les valeurs calculées via les macros soient absolument juste ?
Je remercie par avance tous ceux qui prendront la peine de se pencher sur cet épineux problème.
Alex
Partager