[Excel VBA] Erreurs d'arrondis [Résolu/Fermé]

Signaler
Messages postés
27
Date d'inscription
mercredi 28 février 2007
Statut
Membre
Dernière intervention
22 mai 2008
-
 pachi -
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!

2 réponses

plutot que round, utilise la fonction formatnumber.
Messages postés
27
Date d'inscription
mercredi 28 février 2007
Statut
Membre
Dernière intervention
22 mai 2008
3
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.
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