VBA problème d'arrondi

  • Initiateur de la discussion Initiateur de la discussion Arpette
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Arpette

XLDnaute Impliqué
Bonsoir à tous, je suis confronté à un problème d'arrondi avec mon code, mais également en formule.
Mon code
Code:
Target.Offset(0, 1).Value = Application.WorksheetFunction.Sum _
(Target.Value * Range("G2") + Target.Offset(0, 2) * Range("H2"))

ou la formule
=+(8.35*1.3)+(0.58*37) = 32.315
Avec format de cellule j'arrondir à 32.32. Le problème est que la somme de colonne où se trouvent ces valeurs se fait sur 32.315 et fausse le résultat en lecture.
Est-il possible que le résultat soit 32.32.
Merci de votre aide
@+
 
Re : VBA problème d'arrondi

Bonsoir

Utilises la fonction ARRONDI en formule et son équivalent VBA
=ARRONDI(8,35*1,3+0,58*37;2)
En VBA
Code:
Sub a()
[A1] = Evaluate("=8.35 * 1.3 + 0.58 * 37")
MsgBox Round([A1].Value, 2)
End Sub
 
Dernière édition:
Re : VBA problème d'arrondi

Bonjour Arpette,

Code:
Target.Offset(0, 1).Value = Application.WorksheetFunction.RoundUp (Application.WorksheetFunction.Sum _
(Target.Value * Range("G2") + Target.Offset(0, 2) * Range("H2")),2)

Je sais pas si c'est très lisible mais j'ai juste ajouté un RoundUp.
Syntaxe : RoundUp ( Opération, nombre de décimales)
 
Re : VBA problème d'arrondi

Salut Staple,

Ça dépend de l'arrondi qu'Arpette souhaite mais effectivement, Round, RoundUp ou RoundDown peuvent être utilisés.
Round effectue un arrondi comptable.
RoundUp arrondit au dessus quelque soit le dernier chiffre.
RoundDown au dessous.
 
Re : VBA problème d'arrondi

Re


Comme le remarque l'aide de VBA

  • La fonction ROUNDUP se comporte comme la fonction ROUND, mais elle arrondit toujours les valeurs à un nombre supérieur.
Donc je vais au plus simple 😉 - cad j'utilise Round
(et en passant j'économise 2 caractères dans le code VBA 😎 )
 
Dernière édition:
Re : VBA problème d'arrondi

Re


Comme le remarque l'aide de VBA

  • La fonction ROUNDUP se comporte comme la fonction ROUND, mais elle arrondit toujours les valeurs à un nombre supérieur.
Donc je vais au plus simple 😉

Donc elle ne se comporte pas tout à fait comme Round qui fait du "comptable" 😀
A savoir que de 0 à 4 on mettra zéro et de 5 à 9 on incrémente le chiffre de gauche.

EDIT :
Bon, je vais essayer d'être plus clair avec des exemples.

Prenons l'exemple d'Arpette : 32.315
Avec Round : 32.32
Avec RoundUp : 32.32
Avec RoundDown : 32.31

Si on remplace par 32.312
Avec Round : 32.31
Avec RoundUp : 32.32
Avec RoundDown : 32.31
 
Dernière édition:
Re : VBA problème d'arrondi

Bonsoir à tous les deux, j'ai pris la solution de Staple (Round) qui répond exactement à mon besoin.
Merci à toi JMPS pour toutes ces explications, ainsi on peut choisir la mieux adaptée au besoin.
Merci Staple, tu as une fois plus tapé dans le mille.
Bonne soirée à vous
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
1
Affichages
301
Retour