equivalent de round pur VBA ?

  • Initiateur de la discussion Initiateur de la discussion dry
  • 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 !

D

dry

Guest
je voudrais juste arrondir un nombre au format long à 2 chiffre apres la virgule en VBA.

ex : equivalent de =round(45.2124587,2)
 
Bonjour Dry et Alain,

Bien que Application.WorksheetFunction puisse fonctionner pour Round, je tiens toutefois à faire une petite précision car Round est une Function intégrée dans VBA et donc elle peut-être utilisée directement sans avoir à faire appel aux fonctions d'Excel. (gain en temps de calcul)

Exemple :
Sub Test()
Dim MonChiffre As Double
MonChiffre = Range("A1")

MsgBox Round(MonChiffre, 0)
End Sub


Toutefois seul Round est admis de la sorte, si l'on doit faire appel aux fonctions "RoundUp" ou "RoundDown", la méthode d'Alain est alors nécessaire.


Bon Appétit à tous et toutes
@+Thierry
 
Re : Re: equivalent de round pur VBA ?

Bonjour Dry et Alain,

Bien que Application.WorksheetFunction puisse fonctionner pour Round, je tiens toutefois à faire une petite précision car Round est une Function intégrée dans VBA et donc elle peut-être utilisée directement sans avoir à faire appel aux fonctions d'Excel. (gain en temps de calcul)

Exemple :
Sub Test()
Dim MonChiffre As Double
MonChiffre = Range("A1")

MsgBox Round(MonChiffre, 0)
End Sub


Toutefois seul Round est admis de la sorte, si l'on doit faire appel aux fonctions "RoundUp" ou "RoundDown", la méthode d'Alain est alors nécessaire.


Bon Appétit à tous et toutes
@+Thierry

Salut,

une petite précision sur l'utilisation de Round() en VBA. Elle n'a pas la même comportement que =round() de Excel lorsque le nombre à arrondir est en ,5 :

Round(1.5 , 0)= 2
Round(2.5 , 0)= 2
Round(3.5 , 0)= 4
Round(4.5 , 0)= 4
Round(5.5 , 0)= 6
Round(6.5 , 0)= 6

alors que sous Excel :

=Round(1,5 ; 0) = 2
=Round(2,5 ; 0) = 3
=Round(3,5 ; 0) = 4
=Round(4,5 ; 0) = 5
=Round(5,5 ; 0) = 6
=Round(6,5 ; 0) = 7

(source : FAQ Visual Basic - Question 148 : Comment fonctionne la fonction Round() ?)

Pour avoir le même résultat sous VBA et Excel, utiliser en VBA :
Application.WorksheetFunction.Round(Nombre, 0)

J'espère que ça peut aider !😱
Bonne journée !

Patrovit
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour