[Excel VBA] Erreurs d'arrondis

Résolu
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!
Configuration: Windows XP
Internet Explorer 6.0

2 réponses

  1. plutot que round, utilise la fonction formatnumber.
    0
    1. 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
      1. 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