[Excel VBA] Erreurs d'arrondis

Résolu/Fermé
Kvo Messages postés 27 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 22 mai 2008 - 22 mai 2008 à 09:30
 pachi - 26 nov. 2009 à 16:55
Bonjour,

J'ai un petit souci avec une macro VBA sous Excel qui me sert à arrondir une liste de valeurs au quatrième chiffre après la virgule.

La formule "round" d'Excel arrondit normalement selon les conventions à savoir :

- au chiffre supérieur de 0.50 à 0.99
- au chiffre inférieur de 0.01 à 0.49

Je dis bien "normalement" car j'obtiens des erreurs...
Prenons par exemple le chiffre 45.70625.
Arrondi dans le tableur avec la fonction =round(cellule,4), j'obtiens 45.7063 --> JUSTE
Arrondi avec une macro sous VBA avec la même fonction j'obtiens 45.7062 --> FAUX

Ce n'est pas bien grave dans l'absolu mais j'utilise ce code à des fins comptables et j'ai donc besoin d'exactitude.

Pourriez-vous m'aider svp?

D'avance merci!
A voir également:

2 réponses

plutot que round, utilise la fonction formatnumber.
0
Kvo Messages postés 27 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 22 mai 2008 3
22 mai 2008 à 09:46
L'utilisation de la fonction « formatnumber » à la place de « round » corrige effectivement ce problème, merci!

Je suis tout de même curieux de savoir pourquoi Excel se trompe avec la fonction round, d'autant qu'en présence d'un 5 en 5ème décimale il arrondira tantôt par excès (juste) tantôt par défaut (faux) :/

Tu m’enlèves en tout cas ici une belle épine du pied, encore merci.
0
La fonction Round() utilise l'arrondi "scientifique" et non monétaire, qui fait intervenir la notion de nombre pair.

Si decimale < .5 alors entier inferieur
Sinon si decimale > .5 alors entier superieur
Sinon si entier inferieur pair alors entier inferieur
Sinon entier superieur
0