Problème de calcul

Signaler
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015
-
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
-
Salut !

J'ai un problème sur ma facturation, le calcul de l'AIRSI

Je devrais plutôt avoir 295 dans l'AIRSI

'Généré par un Timer1

T_TVA = Val(T_TotalHT) * T_TVAT / 100
T_AIRSI = Val(T_TotalHT) * T_AIRSIT / 100      <= Ici
T_TotalTaxe = Val(T_TVA) + Val(T_AIRSI)
'-----------------------------------------------
T_TotalTTC = Val(T_TotalHT) + Val(T_TotalTaxe)
T_NetPayer = Val(T_TotalTTC)

sur la planche Excel, j'ai 295 et le calcul est sûr à 100%
Tandis que sur VB6, là, j'ai 250 donc 45 de moins pour un article de 5000

Pouvez vous corriger mon erreur svp ? Je n'arrive vraiment pas a comprendre pourquoi.

J'ai essayé de mettre les valeur en format$: # ##0,00 mais rien n'a changé.

Merci d'avance

----------
OS        : Windows XP SP3 et Vista 32
Platforme : VB 6.0 + SP6
Ok VB6.0 c'est pas net !

11 réponses

Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

Pardon, voici la planche excel
Messages postés
48
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
9 novembre 2009

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????
Messages postés
48
Date d'inscription
samedi 5 août 2006
Statut
Membre
Dernière intervention
9 novembre 2009

ok, donc tu a fait une faute dans la relation :  
T_AIRSI = ( Val(T_TotalHT) + T_TVA  ) * T_AIRSIT / 100  = 295
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

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...
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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).
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Bonsoir,

Attention à la fonction VAL !!

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.

Amicalement,
Us.
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

Salut !

Je crois que c'est plus claire. tu as sans doute raison, j'ai pensé à ça, mais je n'ai pas pensé supprimer le val
Je test et vous préviens.

Merci
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Bonsoir,

Plutôt que VAL utiliser CDBL... et mieux "typer" les variables.

Amicalement,
Us.
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

Salut !

Non il n'affiche pas les virgules ni avec ccur ni avec cdbl



Pourquoi ?
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
8
Bonsoir,

Le problème est donc identifié.

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...

Amicalement,
Us.