Fonctions d’Arrondissement : Round, RoundUp et RoundDown de VBA

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on décembre 23, 2021

Fonction VBA Round

La fonction VBA Round arrondit les nombres à un nombre de chiffres spécifié.

Syntaxe de la Fonction Round de VBA

La syntaxe de la fonction Round de VBA est la suivante :

Round(Expression, [Nombre_Décimales]) où :

  • Expression – Le nombre à arrondir.
  • Nombre_Décimales (facultatif) – Un nombre entier qui spécifie le nombre de décimales à arrondir. La valeur doit être supérieure ou égale à 0 (>=0). Si elle est vide, la valeur par défaut de 0 est utilisée, ce qui signifie que la fonction arrondit au nombre entier le plus proche.

Regardons un exemple pour voir comment la fonction VBA Round fonctionne, en arrondissant à une décimale :

Sub Arrondir1()

Msgbox Round(7.25, 1)

End Sub

La fenêtre MessageBox:

VBA Arrondir une Variable

Dans l’exemple ci-dessus, nous avons saisi le nombre à arrondir directement dans la fonction, mais en général, vous arrondissez plutôt une variable. Voici un exemple utilisant une variable à la place : Remarque : nous utilisons le type de variable Double afin de stocker les valeurs décimales.

Sub ArrondirUneVariable()

Dim NombreUnités As Double

NombreUnités = 7.25

MsgBox "La valeur est " & Round(NombreUnités, 1)

End Sub

Le résultat est :

Résultats de la fonction VBA Round

Nombre réel Nombre de décimales Résultat
7.25 0 7
7.25 1 7.2
7.25 2 7.25
-7.25 1 -7.2
-7.25 2 -7.25

VBA – Arrondir la Valeur d’une Cellule

Vous pouvez également arrondir la valeur d’une cellule directement en VBA :

Sub ArrondirCellule()
    Range("A1").Value = Round(Range("A1").Value, 2)
End Sub

Fonction VBA Arrondi Supérieur

Supposons que vous souhaitiez arrondir un nombre à la hausse à l’aide de VBA. Il n’existe pas de fonction VBA intégrée équivalente à la fonction Excel « Arrondi.Sup », mais vous pouvez appeler la fonction de feuille de calcul Excel Arrondi.Sup (RoundUp en anglais) à partir de votre code VBA :

NombreUnitésArrondiSup = Application.WorksheetFunction.RoundUp(NombreUnités, 3)

Les fonctions de feuille de calcul d’Excel peuvent être utilisées en VBA, grâce à l’objet WorksheetFunction. Les seules fonctions de feuille de calcul que vous ne pouvez pas appeler sont celles qui ont déjà un équivalent VBA intégré.

Un rappel de la syntaxe de la fonction d’arrondi supérieur de la feuille de calcul Excel :

ARRONDI.SUP(Nombre, No_Chiffre) où :

  • Nombre – Le nombre que vous souhaitez arrondir.
  • No_Chiffre – Le nombre de chiffres auquel vous souhaitez arrondir le nombre.

Alors, regardons un exemple, afin que vous puissiez voir comment accéder à la fonction ARRONDI.SUP dans votre code VBA :

Sub ArrondiSupérieur()

Dim NombreUnités As Double

Dim NombreUnitésArrondiSup As Double

NombreUnités = 7.075711

NombreUnitésArrondiSup = Application.WorksheetFunction.RoundUp(NombreUnités, 4)

MsgBox "La valeur est " & NombreUnitésArrondiSup

End Sub

Le résultat est :

Arrondir à la Hausse au Nombre Entier le Plus Proche

Vous pouvez arrondir à la hausse au nombre entier le plus proche en spécifiant 0 comme nombre de décimales :

Sub ArrondiSupérieurEntier()

MsgBox Application.WorksheetFunction.RoundUp(7.1, 0)

End Sub

Le résultat obtenu :

Résultats de la Fonction RoundUp

Nombre réel Chiffres Résultat
7.075711 0 8
7.075711 1 7.1
7.075711 2 7.08
7.075711 3 7.076
7.075711 -1 10
7.075711 -2 100
7.075711 -3 1000

Fonction VBA Arrondi Inférieur

Supposons que vous souhaitiez arrondir un nombre à la baisse à l’aide de VBA. Il n’y a pas non plus de fonction VBA intégrée équivalente à ARRONDI.INF. Au lieu de cela, ce que vous feriez, c’est appeler la fonction de feuille de calcul Excel ARRONDI.INF (RoundDown en anglais) à partir de votre code VBA.

Un rappel de la syntaxe de la fonction d’arrondi inférieur de la feuille de calcul Excel :

ARRONDI.INF(Nombre, No_Chiffres) où :

  •  Nombre – Le nombre que vous souhaitez arrondir à la baisse.
  • No_Chiffres – Le nombre de chiffres auquel vous souhaitez arrondir le nombre.

Examinons donc un exemple, afin que vous puissiez voir comment accéder à la fonction RoundDown Worksheet dans votre code VBA :

Sub ArrondiInférieur()

Dim NombreUnités As Double

Dim NombreUnitésArrondiInf As Double

NombreUnités = 5.225193

NombreUnitésArrondiInf = Application.WorksheetFunction.RoundDown(NombreUnités, 4)

MsgBox "La valeur est " & NombreUnitésArrondiInf

End Sub

Le résultat est :

Arrondir à la Baisse au Nombre Entier le Plus Proche

Vous pouvez arrondir à la baisse au nombre entier le plus proche en spécifiant 0 comme nombre de décimales :

Sub ArrondiInférieurEntier()

MsgBox Application.WorksheetFunction.RoundDown(7.8, 0)

End Sub

Le résultat est le suivant :

Résultats de la Fonction RoundDown

Numéro réel Chiffres Résultat
5.225193 0 5
5.225193 1 5.2
5.225193 2 5.22
5.225193 3 5.225
5.225193 -1 0
5.225193 -2 0
5.225193 -3 0

Autres Fonctions d’Arrondissement VBA

Plafond VBA – Arrondir à la Hausse à un Multiple Spécifié

VBA ne dispose pas d’un équivalent de la fonction Plafond.Math. Par conséquent, si vous souhaitez arrondir un nombre à l’entier le plus proche ou à un multiple spécifié le plus proche, vous pouvez appeler la fonction de feuille de calcul Plafond.Math (Ceiling.Math en anglais) d’Excel à partir de votre code VBA.

Un rappel de la syntaxe de la fonction Ceiling.Math de la feuille de calcul Excel :

PLAFOND.MATH(Nombre, [Précision], [Mode]) où :

  • Nombre – Le nombre que vous souhaitez arrondir.
  • Précision (facultatif) – Le multiple auquel vous souhaitez que votre nombre soit arrondi.
  • Mode (facultatif) – Contrôle si les nombres négatifs sont arrondis en s’approchant ou en s’éloignant de zéro.

Examinons donc un exemple, afin que vous puissiez voir comment accéder à la fonction Plafond.Math dans votre code VBA :

Sub ArrondiSupérieurPlafond()

Dim NombreUnités As Double

Dim plafondmathNombreUnités As Double

NombreUnités = 4.1221

plafondmathNombreUnités = Application.WorksheetFunction.Ceiling_Math(NombreUnités, 5)

MsgBox "La valeur est " & plafondmathNombreUnités

End Sub

Le résultat est le suivant :

Résultats de la fonction Ceiling.Math à un Multiple Spécifié

Nombre réel Signification Mode Résultat
4.1221 5
4.1221 3 6
4.1221 50 50
-4.1221 3 -3
-4.1221 3 -1 -6

Plancher VBA – Arrondir à la Baisse à un Multiple Spécifié

VBA ne dispose pas non plus d’un équivalent de la fonction PLANCHER.MATH. Cependant, une fois encore, si vous souhaitez arrondir un nombre à l’entier inférieur ou au multiple spécifié le plus proche, vous pouvez appeler la fonction de feuille de calcul Plancher.Math (Floor.Math en anglais) d’Excel en VBA.

Un rappel de la syntaxe de la fonction Floor.Math de la feuille de calcul Excel :

PLANCHER.MATH(Nombre, [Signification], [Mode]) où :

  • Nombre – Le nombre que vous souhaitez arrondir à l’unité inférieure.
  • Précision (facultatif) – Le multiple auquel vous souhaitez que votre nombre soit arrondi.
  • Mode (facultatif) – Contrôle si les nombres négatifs sont arrondis en s’approchant ou en s’éloignant de zéro.

Examinons un exemple, afin que vous puissiez voir comment accéder à la fonction Floor.Math Worksheet dans votre code VBA :

Sub ArrondiInférieurPlancher()

Dim NombreUnités As Double
Dim planchermathNombreUnités As Double

NombreUnités = 4.55555559
planchermathNombreUnités = Application.WorksheetFunction.Floor_Math(NombreUnités, 2)

MsgBox "La valeur est " & planchermathNombreUnités

End Sub

Le résultat est :

Résultats de la fonction Floor.Math à un Multiple Spécifié

Nombre réel Signification Mode Résultat
4.55555559 4
4.55555559 3 3
4.55555559 50 0
-4.55555559 3 -6
-4.55555559 3 -1 -3
vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA