Fonctions d’Arrondissement : Round, RoundUp et RoundDown de VBA
In this Article
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 |