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

Rechercher des sujets similaires à "creation fonction arrondi 005"