Arrondir le résultat
Bonjour,
Je rencontre un petit problème avec l'utilisation de la fonction Round, et je ne comprend pas pourquoi je ne parviens pas à obtenir le bon résultat.
Donc me petit bout de code est le suivant:
Sub multi()
Dim totfacture As Integer
Dim TVAfact As Single
Dim TVA1 As Single
Dim TVA2 As Single
Dim HT As Single
Dim TTC As Single
Dim HT1 As Single
Dim HT2 As Single
totfacture = Sheets("Liste des factures").UsedRange.Rows.Count
TVA1 = Sheets("Liste des factures").Cells(1, 13).Value
TVA2 = Sheets("Liste des factures").Cells(1, 14).Value
For facture = 2 To totfacture
HT = Sheets("Liste des factures").Cells(facture, 6).Value
TTC = Sheets("Liste des factures").Cells(facture, 7).Value
HT2 = Round((TTC - (HT * (1 + TVA1 / 100))) / (TVA2 / 100 - TVA1 / 100), 2)
HT1 = HT - HT2
Sheets("Liste des factures").Cells(facture, 19).Value = HT1
Sheets("Liste des factures").Cells(facture, 20).Value = TVA1
Sheets("Liste des factures").Cells(facture, 21).Value = HT2
Sheets("Liste des factures").Cells(facture, 22).Value = TVA2
Next
End SubEt j'essaie d'arrondir HT2 à 2 chiffres après la virgule.
Et quand je lance mon programme j'obtiens des résultat du type 13475,3603515625.
Une idée de ce qui provoque cela?
Bonjour,
Je ne sais pas vous dire exactement ce qui provoque ce problème (visiblement entre Excel et VBA), mais vous pouvez appliquer un format à une plage de cellules avec .NumberFormat = "0.00".
Cela conserve les chiffres après 2 décimales dans la valeur stockée mais l'affichage lui, ne sera que de 2 décimales.
En espérant que d'autres personnes du forum pourront compléter.
Merci, pour le tips.
Mais ca ne me corrige pas mon problème, il faut vraiment que j'obtienne la valeur à 2 chiffres après la virgule.
Bonjour à tous,
En arrondissant juste avant d'attribuer la valeur, cela semble marcher.
Mais apparemment il faut passer par la fonction arrondi. Avec round VBA, il reste encore des "scories".
Cordialement