Arrondi dans une macro

sur le code suivant j'effectu un calcul avec une fonction arrondi dont le resultat s'imprime dans deux case (acompte et tiers1)puis dans ma feuille j'ai une case solde qui prend le total d'une colonne moin mes deux acompte et tiers1 ce qui donne pour exemple

total = 20

acompte =7

tiers1 = 7

solde = 6

or j'aurais souhaité que l'arrondi se face a l'unité inferrieur dans une feuille je le fait avec arrondi.inf mais dans une macro j'utilise round qui n'est donc pas la même chose.

car j'aurai voulu que le resultat soit

total = 20

acompte =6

tiers1 =6

solde =8

par exemple

Private Sub CommandButton2_Click()
totals = Sheets("facture").Range("total").Value

If CheckBox1 = True Then

With Sheets("facture").Select
Range("acompte").Value = Round(totals / 100 * 33)
End With
End If

If CheckBox2 = True Then

With Sheets("facture").Select
Range("tiers1").Value = Round(totals / 100 * 33)
End With
End If

Unload Me
End Sub

merci

Bonsoir,

Essaie en remplaçant Round par Application.WorksheetFunction.RoundDown

Bonjour,

Round n'est pas une fonction d'arrondi, elle supprime simplement les parties décimales qu'ont lui indique, en l’occurrence, pas de décimale dans ton exemple.

Essaye en remplaçant Round() par Int()

A+

vba-new j'aivais touver RoundDown dans l'aide mais dans mon code cela ne fonctionne pas car il n'y a pas de code de choix d'arrondi.

par contre avec Int() comme me la suggérré lermite cela fonctionne parfaitement

merci beaucoup a vous.

Bonjour,

Attention, avec Int, si tu as des valeurs négatives, le résultat risque de ne pas être correct. En effet, l'entier de -6,5 est -6 alors que l'arrondi inférieur est -7, si c'est le cas, le mieux est d'utiliser RoundDown qui te retournera -7

A+

[Benead] Benoît Marchand

Rechercher des sujets similaires à "arrondi macro"