Creation d'une fonction pour l'arrondi 0.005
Bonjour à tous,
je ne suis qu'un novice en vba, et donc voici mon appel à l'aide :
Afin de calculer des factures, avec TVA, remise....
j'utilise une macro avec des variables pour effectuer mes calculs
et j'utilise la commande ROUND( X, 2) pour effectuer mon arrondi à deux décimales
Mon problème, les arrondis fonctionnent bien sauf que l'arrondi dans le cas ou la troisième décimale est 5 on obtient le chiffre supérieur. (Exemple : 10,145 = 10.15 alors que je voudrai obtenir 10.14) dans les autres cas je ne veux rien changer.
(de x,001 à x,004 arrondi à la décimale inf ...)
Je ne sais pas si il existe une commande similaire à "Round" pouvant régler ce probléme
ou
Créer une fonction du type ........(Et c'est là que le novice que je suis à besoin d'aide)
Sub Arrondi()
Dim variable1 As Double
if variable1 = x,005 then
....
End Sub
Puis dans la macro
Private Sub calcul()
Dim f As Double 'remise en %
Dim f1 As Double 'remise calcul TTC
Dim farrondi As Double 'remise calcul arrondi TTC
Dim f2 As Double 'remise calcul HT
f = Val(TextBox7)
f1 = (Base) * f / 100
farrondi = Round(f1, 2) ' remplace round par Arrondi
TextBox16 = farrondi
f2 = f1 / 1.1
Textbox17 = Round(f1 / 1.1, 2) ' remplace round par Arrondi
Je vous remercie d'avance pour votre aide
Un débutant en VBA
Bonjour,
à tester,
x = 10.145
v = (x * 1000 Mod 1000) Mod 10
If v Mod 100 <= 5 Then r = Application.RoundDown(x, 2) Else r = Application.RoundUp(x, 2)Bonjour à tous
Autre solution , utiliser la fonction :
WorksheetFunction.RoundDown(Range("B6"), 2)Bye !
Merci beaucoup pour vos réponses très rapides.
Je vais essayer vos codes la semaine prochaine et je vous dirai..quoi
NB : en fait je suis en train de concevoir un fichier pour gérer un VTC (mon gendre)
avec plusieurs mode de calcul, un agenda, factures, devis, suivi du véhicule, base de données: clients-partenaire-course connues...
Étant un amateur en VBA, je trouve souvent mes réponses sur le forum, bien rempli
Pour ce qui le désire, je mettrai l’intégralité du fichier dans ma prochaine réponse
Merci encore et félicitations pour vos recherches
Bonjour à tous le Forum
Merci SabV, ta formule fonctionne bien.
Pour Gmb, merci pour ta fonction, cependant étant un novice en vba je ne vois pas trop comment l'intégrer dans mes variables
parfois il me faut du temps pour comprendre !!
Par contre je pensai résoudre mon problème en arrondissant de la sorte mais dans certain cas mes factures ne sont plus bonnes.
Pour mieux comprendre voici mon fichier
Il existe plusieurs manières de calcul. je veux résoudre ce problème lorsque je suis en mode "assistance"
voir les macros du : UserForm7b
tous mes TTC sont bons, par contre lorsque je cherche le HT (j'utilise des formules comptable trouver sur le net) il y a parfois des erreurs à 0.01 centimes prés
prenons par exemple la saisie n°23
le TTC = 132.51 - sommes des HT : à 20% 3.83 c'est OK mais à 10% je trouve 116.28 alors que je devrais avoir 116.29
et la je cherche, mais ne trouve pas
Merci à ceux qui voudrons bien m'aider dans ce casse tête
Bonjour à tous,
finalement le problème ne vient pas de la programmation :
Un peu de lecture comptable. J'ai trouvé ce lien :
http://www.nuage-web.fr/wp/wiki/methode-de-calcul-du-total-ttc-et-regles-d-arrondi/
Après plusieurs lectures sur différents forums, ce problème d'arrondi au 0.01 centimes prés est très connu.
En fait, le problème vient de la formule utilisée par les comptables,
d’ailleurs si on utilise la méthode mathématique traditionnel on ne trouve pas le même résultat.
calculatrice : en partant d'un TTC
1 - méthode mathématique (calculatrice) 25.85 - 10% = 23.265 (je développe : = 25.85 - (10*25.85/100) = 25.85 - 2.585 = 23.265
2 - méthode comptable : 25.85 / 1.1 = 23.5 !!!!!!
d’après ce que j'ai compris en compta on part toujours dans le même sens si on débute TTC vers TVA il faut tous calculer dans ce sens.
je salut tous le forum, à bientôt