Code VBA : Problème d'arrondi à 5 centimes

Bonjour,

Avez-vous une idée pourquoi les deux parties de codes ci-dessous ne donnent pas toujours le même résultat - par exemple avec le chiffre 222.125 - et comment je peux modifier le code "direct" (celui qui n'inscrit pas de formule, mais un résultat) afin que j'obtienne le même résultat qu'avec la formule ?

    Range("B1").FormulaR1C1 = "=ROUND(RC[-1]*2,1)/2"
    Range("C1") = Round((Range("A1") * 2), 1) / 2

A vous relire.

Bonjour

Essayes

Sub essai()
  Range("B1").FormulaR1C1 = "=ROUND(RC[-1]*2,1)/2"                ' Ok
  Range("C1") = Round((CDbl(Range("A1")) * 2), 1) / 2             ' Pas bon
  Range("D1") = WorksheetFunction.Round(Range("A1") * 2, 1) / 2   ' Ok
  Range("E1") = Application.Round(Range("A1") * 2, 1) / 2         ' OK
End Sub

Bonne journée

Bonjour

Je ne saurais te dire pourquoi la différence, mais cette autre formule retourne le même résultat que B1

Range("D1").FormulaR1C1 = "=MROUND(RC1,0.05)"
Range("D1") = Range("D1").Value

Amicalement

Nad

Salut Nad, Salut Banzai,

Merci beaucoup à tous les deux pour vos réponses.

Heureusement qu'il y a encore des choses qu'on ne s'explique pas

Mais j'ai plusieurs solutions à choix et c'est tout ce qui compte.

Bonne soirée et à la prochaine.

Bonsoir,

Pour info, MROUND correspond à la fonction ARRONDI.AU.MULTIPLE et est disponible depuis excel 2003.

Elle fait partie de la macro-complémentaire 'Utilitaire d'Analyse', il faut donc cocher cette macro pour pouvoir l'utiliser.

Le cas contraire elle renvoit une erreur "#nom".

ARRONDI.AU.MULTIPLE revient à --> =ARRONDI(nombre/multiple;0)* multiple

Exemple pour ton cas la formule aurait pu être ceci : =ARRONDI(A1/0,05;0)*0,05

Amicalement

Merci Dan pour ces précisions fort utiles

Cordialement

Rechercher des sujets similaires à "code vba probleme arrondi centimes"