Salut;
si T_AIRSIT = 5
T_TotalHT = 5000
donc c'est logique que : T_AIRSI = Val(T_TotalHT) * T_AIRSIT / 100 = 5000*5/100 = 250
je comprend pas d'ou vient 295????
Si je fais ca ca fausse mon calcul car il calculera l'addition de la TVA
Ce qui dit que chaque fois que j'insère un article, il calculera la TVA + TVA et ainsi de suite... donc ca faussera.
Normalement, ce que j'ai fais "doit" fonctionner, mais je ne comprends pas pourquoi il y'a une différence entre Excel et VB
Lequel est juste ? j'en sais rien, et si je prends une calculette, Excel a raison...
Salut
Moussa a raison :
D'après tes données Excel, la taxe AIRSI devrait porter sur le montant TTC, c'est à dire le montant HT + TVA
Dans ton calcul, AIRSI ne prend comme base que le montant HT
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Ou alors, c'est ton calcul Excel qui n'est pas juste !
Je ne connais pas cette taxe AIRSI.
Vois avec ton comptable pour savoir sur quelle base elle s'applique (HT ou TTC).
Il faut regarder comment sont rentrer les nombres décimaux... Si T_TotalHT n'est pas typé, alors il peut être avec une virgule et VAL va alors en garder que la partie entière... d'où d'inévitables erreurs d'arrondis... peut-être bien la cause de la différence de 45...
Pour le constater, il suffit de vérifier la valeur T_totalHT et VAL(T_totalHT) avec un affichage juste avant le calcul.
De toute évidence, il faut comprendre comment est allouée la valeur à la variable T_totalHT... et très probablement, tu n'as pas déclaré son type ?... A priori avec :
Dim T_TotalHT as Double
ce qui permettera d'éviter le pb rencontré. Mais il faudrait également le faire pour toutes les autres, sinon tu laisses VBA faire le travail de conversion entre les types, qui est donc parfois pas fait comme on le voudrait. Cela s'appelle "structurer" son programme... Si je comprends bien ta situation, toutes les variables utilisées sont par défaut, soit en type Variant...