us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 15 déc. 2007 à 00:47
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.
mmptj
Messages postés21Date d'inscriptionmardi 4 mars 2003StatutMembreDernière intervention20 janvier 2009 14 déc. 2007 à 11:15
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
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 3 déc. 2007 à 23:00
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.
allopeck
Messages postés23Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention 3 décembre 2007 3 déc. 2007 à 15:44
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
mmptj
Messages postés21Date d'inscriptionmardi 4 mars 2003StatutMembreDernière intervention20 janvier 2009 3 déc. 2007 à 14:12
Bonjour,
Allopeck :
Je n'ai pas bien compris le problème, X mod 2 donne un résultat compris entre 0 et 1.999999...
ex 10.45 mod 2 = 0.45
10.50 mod 2 = 0.5
11.45 mod 2 = 1.45
La fonction arrondir(10.45,1.0,0) donne 10.0
arrondir(10.50,1.0,0) donne 11.0
En espérant que ceci sera utile...
allopeck
Messages postés23Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention 3 décembre 2007 3 déc. 2007 à 12:21
Bonjour,
Voilà je voudrais savoir comment arrondir un chiffre en fonction de ce qu'il y a derrière la virgule. Je m'explique, je réalise l'opération suivante :
R= X mod 2 et je veux que mon résultat s'arrondisse au supérieur si on a 0,5 ET à l'inférieur pour le reste.
10,5--> 11
10,45--> 10
Si quelqu'un pouvez m'aider merci
Bonne journée
cs_Daranc
Messages postés15Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention12 mai 2010 3 déc. 2007 à 08:37
Bingo je teste dès que j'ai un moment
Daranc
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 30 nov. 2007 à 21:48
Bonsoir,
Daranc, j'ai modifié le nom Arrondi en Arrondir pour utiliser cette fonction sur une feuille Excel. En effet, le nom "Arrondi" existe déjà donc cela ne pouvait pas marcher sur une feuille...
Pour l'utiliser, donc, il suffit maintenant, de copier/coller le code dans un module, puis dans une cellule taper la fonction :
=Arrondir(1233,13332;0,01)
pour arrondir au plus près à deux deux chiffres.
Pour l'option, il faut y mettre la valeur numérique -1 ou 1, car j'ai tenu compte de la bonne remarque de MMPTJ.
Merci pour vos suggestions,
Amicalement,
Us.
mmptj
Messages postés21Date d'inscriptionmardi 4 mars 2003StatutMembreDernière intervention20 janvier 2009 26 nov. 2007 à 09:01
Bravo pour ce code dont tout le monde a déjà eu besoin.
Pour ma part je préfère remplacer le dernier argument par un entier
ce qui permet d'employer une variable
-1 = par défaut
0 = au plus pres
1 = par exces
dans mon cas la fonction s'écrira
Arrondi = Int(Nb / Multiple + (Sens+1) / 2) * Multiple
cs_Daranc
Messages postés15Date d'inscriptionjeudi 29 avril 2004StatutMembreDernière intervention12 mai 2010 26 nov. 2007 à 07:45
Salut
est-ce possible d'intégrer cette fonction à Excel ?
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 25 nov. 2007 à 16:56
JE rajoute... cela fait quelques heures que je recherche sur internet (et aussi sur VBF), et je n'ai pas encore trouvé un code pour arrondir un nombre qui présente les avantages de ma petite formule. Suis-je le premier ? ... c'est peut-être prétentieux, mais pourtant...
Amicalement,
Us.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 25 nov. 2007 à 14:38
Non pas 3 lignes, mais 2 lignes... -:);
Je te rassure se code ne restera pas indéfiniment... Mais, cette fonction est généralement tellement mal conçue, que cette version me semble intéressante. (Je sais, mes chevilles...) N'empêche que je suis arrivé à cette version extrêmement compacte, après une petite réflexion, toute même... mais, je ne prétendant pas être arrivé forcément au meilleur, je le poste pour en recevoir des critiques constructives (j'insiste sur "constructive")... Je l’ai aussi proposé en Snippet (peut-être un poil moins bien construit, d'ailleurs)… En attendant si vous avez une suggestion n’hésitez pas.
Amicalement,
Us.
PS : Je reçois des demandes d’aide pour arrondir un nombre par e-mail… écrivez vos demandes plutôt ici. Merçi.
Elxior
Messages postés56Date d'inscriptionjeudi 28 juin 2007StatutMembreDernière intervention29 août 20101 25 nov. 2007 à 05:13
Ça serait plus un snippet, car 3 lignes de code...
15 déc. 2007 à 00:47
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.
14 déc. 2007 à 11:15
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
3 déc. 2007 à 23:00
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.
3 déc. 2007 à 15:44
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
3 déc. 2007 à 14:12
Allopeck :
Je n'ai pas bien compris le problème, X mod 2 donne un résultat compris entre 0 et 1.999999...
ex 10.45 mod 2 = 0.45
10.50 mod 2 = 0.5
11.45 mod 2 = 1.45
La fonction arrondir(10.45,1.0,0) donne 10.0
arrondir(10.50,1.0,0) donne 11.0
En espérant que ceci sera utile...
3 déc. 2007 à 12:21
Voilà je voudrais savoir comment arrondir un chiffre en fonction de ce qu'il y a derrière la virgule. Je m'explique, je réalise l'opération suivante :
R= X mod 2 et je veux que mon résultat s'arrondisse au supérieur si on a 0,5 ET à l'inférieur pour le reste.
10,5--> 11
10,45--> 10
Si quelqu'un pouvez m'aider merci
Bonne journée
3 déc. 2007 à 08:37
Daranc
30 nov. 2007 à 21:48
Daranc, j'ai modifié le nom Arrondi en Arrondir pour utiliser cette fonction sur une feuille Excel. En effet, le nom "Arrondi" existe déjà donc cela ne pouvait pas marcher sur une feuille...
Pour l'utiliser, donc, il suffit maintenant, de copier/coller le code dans un module, puis dans une cellule taper la fonction :
=Arrondir(1233,13332;0,01)
pour arrondir au plus près à deux deux chiffres.
Pour l'option, il faut y mettre la valeur numérique -1 ou 1, car j'ai tenu compte de la bonne remarque de MMPTJ.
Merci pour vos suggestions,
Amicalement,
Us.
26 nov. 2007 à 09:01
Pour ma part je préfère remplacer le dernier argument par un entier
ce qui permet d'employer une variable
-1 = par défaut
0 = au plus pres
1 = par exces
dans mon cas la fonction s'écrira
Arrondi = Int(Nb / Multiple + (Sens+1) / 2) * Multiple
26 nov. 2007 à 07:45
est-ce possible d'intégrer cette fonction à Excel ?
25 nov. 2007 à 16:56
Amicalement,
Us.
25 nov. 2007 à 14:38
Je te rassure se code ne restera pas indéfiniment... Mais, cette fonction est généralement tellement mal conçue, que cette version me semble intéressante. (Je sais, mes chevilles...) N'empêche que je suis arrivé à cette version extrêmement compacte, après une petite réflexion, toute même... mais, je ne prétendant pas être arrivé forcément au meilleur, je le poste pour en recevoir des critiques constructives (j'insiste sur "constructive")... Je l’ai aussi proposé en Snippet (peut-être un poil moins bien construit, d'ailleurs)… En attendant si vous avez une suggestion n’hésitez pas.
Amicalement,
Us.
PS : Je reçois des demandes d’aide pour arrondir un nombre par e-mail… écrivez vos demandes plutôt ici. Merçi.
25 nov. 2007 à 05:13