Imprécision dans les report de tarif

Bonjour,

j'ai un userform qui reporte des tarif de matériel, et qui indique le total, mais autant le tarif matériel et précis, autant dans le total il apparait rapidement au bout de 2 ou 3 lignes une inexactitude de l'ordre de plusieurs centimes à force de travailler dessus le code je finis par ne plus y voir clair !!! alors si une âme charitable et capable de me trouver l'erreur je suis preneur !!!

Et si quelqu’un à aussi une idée pour que quand je remets à zéro les champs la première combobox Diamètre ce remettent à zéro aussi (notamment quand j'ajoute une ligne cela ce remet à zéro sauf cette combobox)

Merci bcp

PS: (une partie du code appartient à Jacques Boisgontier pour les combobox en cascades)

Bonjour,

Tu as vu tes tarifs ?

3.2634... D'accord c'est pas cher la pipe mais avec 4 chiffres après la virgule ne t'étonne pas de voir des centimes en plus apparaitre.

Ce n'est pas parce que tu arrondis à 2 chiffres à l'affichage que le reste disparait.

Et si les 4 décimales sont voulues et normales utilise des variables typées Currency.

eric

Bonjour eriiic,

j'ai arrondi les chiffre dans excel avec la fonction arrondi ( a 2 chiffres) et fais un copier coller valeur dans la colonne,

j'ai utilisé une conversion de type CCur , mais soucis il ne trouve pas des centimes en plus mais en moins !!!! sur le 2eme chiffre après la virgule ? au lieu de trouver 20.34 il trouve 20.2 ???

une autre idée ?

merci bcp en tous cas pour les 4 chiffres après la virgules je n'avais pas vu

Fourni le nouveau fichier et donne l'exemple précis avec les manips et saisies à faire.

eric

re Eriiic

donc en tapant :

2" ; Equal Tee ; S80 ; NA ; NA et nombres d'éléments 4

il affiche un prix unitaire de : 10.24 mais un total unitaire de 10,2 et un prix total de 40.96 mais un final de 40.80 ????

Autant entre 10.2 et 10.24 il doit s'agir d'un problème d'affichage de format autant entre 40.96 et 40.80 là j'ai du mal !!!

je t'avoue que mon niveau et moyen et que j'en perd un peu mon latin ( )

TextBox2.Value = "10.24 €"

Val2 = Left(TextBox2.Value, 4)

Et le point, il ne compte pas ? =>10.2

Comme ton séparateur décimal est le "." Val() te retourne la partie numérique en début de chaine (sinon il faudrait remplacer "," par "." avant)

D'autre part tu ne peux pas déclarer une variable as currency, il faut la déclarer Variant, elle se type lors de l'initialisation et il vaut mieux l'utiliser au plus tôt si tu veux bénéficier de ses avantages.

Au total donc :

Dim Val2 As Variant 'ou Dim Val2  (variant par défaut)
...
Val2 = CCur(Val(TextBox2.Value)) ' Val2 devient Variant/Currency
...
TotalPrix = Val2 + Val3 ' tu auras fait pareil sur Val3

TotalPrix = Val2

Je te laisse faire pareil pour les autres.

Au passage si tu veux tu peux te passer de Val2 et Val3 :

Val1 = CCur(Val(UserForm1.ResumMatos.List(ResumMatos.ListIndex, 9)))
Val1bis = CCur(Val(UserForm1.ResumMatos2.List(ResumMatos2.ListIndex, 1)))
...
TotalPrix = CCur(Val(TextBox2.Value)) + val1

Plus besoin de tester val1, tu additionnes 0 c'est tout.

Tu n'as pas déclaré TotalPrix (entre autres...). Il faut déclarer et typer toutes ses variables, ça évite les erreurs sur le nom très difficiles à trouver. Une erreur de frappe et tu mets 1 semaine à comprendre pourquoi ce n'est pas bon. Et ça dans le meilleur des cas où ça te fait une erreur qui saute aux yeux et que tu cherches, sinon c'est 1 an plus tard que tu t'en aperçois.

Met Option Explicit au début de tous tes modules.

Et si tu veux que ça se fasse automatiquement coche Déclaration obligatoire des variables dans les Options.

eric

De rien...

Donc, après avoir écouté vos précieux conseil (et un peu d'ajustements je ne vais pas aussi vite que vous et j'ai besoin de comprendre ce que je fais) et terminé de tester ce matin

Je vous remercie (comme je l'ai déjà fais par MP) du temps que vous avez passé et de l'excellente solution, il y avait en effet beaucoup d’imprécision dans mes variables et dans mes conversions (j'ai encore beaucoup de mal avec cela et du coup de travail pour les maitrisé),

je mets pour ceux que cela intéresse le code corriger et simplifier grâce à Eriiic :

Merci encore

Rechercher des sujets similaires à "imprecision report tarif"