FONCTION ARRONDIR COMPLÈTE. (DÉCIMALE, MULTIPLE, PAR DÉFAUT, PAR EXCÈS, AU PLUS

Signaler
Messages postés
56
Date d'inscription
jeudi 28 juin 2007
Statut
Membre
Dernière intervention
29 août 2010
-
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44814-fonction-arrondir-complete-decimale-multiple-par-defaut-par-exces-au-plus-pres

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

JE te mettrai bien un 10/10 pour cette remarque. Excellent.

Pour le code, on peut éviter la variable intermédiaire valMin. JE corrige le code avec ta bonne remarque, de ce pas... Merci.

Amicalement,
Us.
Messages postés
21
Date d'inscription
mardi 4 mars 2003
Statut
Membre
Dernière intervention
20 janvier 2009

Il existe un problème avec cette fonction l'arrondi par exces d'une valeur multiple du "multiple" doit donner la valeur.
ex: Arrondir(1234, 1, ParExces)=1234 et non pas 1235.

je propose de modifier la fonction ainsi:

Function Arrondir(Nb, ByVal Multiple As Double, Optional ByVal Sens As ctArrondi = AuPlusPres) As Double
If Not IsNumeric(Nb) Then Nb = Val(Replace(Nb, ",", "."))
Dim valMin As Double
valMin = Int(Nb / Multiple) * Multiple
If valMin = Nb Then
Arrondir = valMin
Else
Arrondir = Int(Nb / Multiple + (Sens + 1) / 2) * Multiple
End If
End Function
Messages postés
2065
Date d'inscription
lundi 11 avril 2005
Statut
Membre
Dernière intervention
14 mars 2016
10
Bonsoir Allopeck,

IL semble évident que MMPTJ a parfaitement répondu à ta demande d'exemple... (Bingo ! dirait Daranc...)

La fonction "arrondir", tu devrais la trouver (avec un peu de chance) juste au-dessus de ces posts... enfin, normalement... elle est dans le cadre SOURCE... un peu près comme toutes les sources sur VBF, par ailleurs... Le vrai problème c'est peut-être pour l'utiliser... Pour cela, fait un COPIER du code source que tu dois COLLER dans un module du VBA (ou VB6...). Et c'est tout !
Ensuite, si tu veux l'utiliser sous Excel dans une cellule, lit mon post précédent en réponse à Daranc... Bingo ! Si tu veux l'utiliser dans un programme, et bien, apprends à programmer... car elle n'est pas différente des autres fonctions personnalisées qu'on peut fabriquer...

Amicalement,
Us.
Messages postés
23
Date d'inscription
lundi 16 janvier 2006
Statut
Membre
Dernière intervention
3 décembre 2007

Excusez je me suis mal exprimé! en fait je veux arrondir le resultat d'une opération.
Si on a 0.5 je veux arrondir au supérieur. et autrement à l'inférieur.? Est ce possible et si oui pouvez vous me donner un exemple?
merci

PS : Ta fonction arrondir je la trouve ou ? je la déclare ?
bonne journée
Afficher les 13 commentaires