Bonjour,
Pourquoi les résultat d'une formule et d'une fonction personnalisée de
cette même formule est différent ?
Je m'explique :
En A1, je mets 0.0025
En A2, je mets la formule =ARRONDI(A1*20;)/20
Le résultat est 0.05, ce qui est juste
Ensuite, je mets en A3 la formule =ArrA5cts(A1)
qui fait appel à la fonction :
Function ArrA5cts(val)
ArrA5cts = Round(val * 20, 0) / 20
End Function
Et le résultat est : 0
Quelqu'un peut m'expliquer pourquoi ?
Merci,
Max
Bonjour,
Pourquoi les résultat d'une formule et d'une fonction personnalisée de
cette même formule est différent ?
Je m'explique :
En A1, je mets 0.0025
En A2, je mets la formule =ARRONDI(A1*20;)/20
Le résultat est 0.05, ce qui est juste
Ensuite, je mets en A3 la formule =ArrA5cts(A1)
qui fait appel à la fonction :
Function ArrA5cts(val)
ArrA5cts = Round(val * 20, 0) / 20
End Function
Et le résultat est : 0
Quelqu'un peut m'expliquer pourquoi ?
Merci,
Max
Bonjour,
Pourquoi les résultat d'une formule et d'une fonction personnalisée de
cette même formule est différent ?
Je m'explique :
En A1, je mets 0.0025
En A2, je mets la formule =ARRONDI(A1*20;)/20
Le résultat est 0.05, ce qui est juste
Ensuite, je mets en A3 la formule =ArrA5cts(A1)
qui fait appel à la fonction :
Function ArrA5cts(val)
ArrA5cts = Round(val * 20, 0) / 20
End Function
Et le résultat est : 0
Quelqu'un peut m'expliquer pourquoi ?
Merci,
Max
Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
Bonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5 (pas
les autres) au nombre pair le plus proche, ainsi round(9.5,2) =
round(10.5,2) = 10Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
Bonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5 (pas
les autres) au nombre pair le plus proche, ainsi round(9.5,2) =
round(10.5,2) = 10
Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
Bonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5 (pas
les autres) au nombre pair le plus proche, ainsi round(9.5,2) =
round(10.5,2) = 10Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelleBonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5 (pas les
autres) au nombre pair le plus proche, ainsi round(9.5,2) = round(10.5,2)
= 10Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelle
Bonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5 (pas les
autres) au nombre pair le plus proche, ainsi round(9.5,2) = round(10.5,2)
= 10
Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelleBonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5 (pas les
autres) au nombre pair le plus proche, ainsi round(9.5,2) = round(10.5,2)
= 10Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
Bonjour à tous,
Ma version d'Excel souffrirait-elle d'un micro climat..?
(20°8 C à 00:10...)
avec les valeurs suivantes **, j'obtient les résultats suivants --->:
avec de la gauche vers la droite:
=ARRONDI(A15*20;)/20 ou =0,05*ARRONDI(A15/0,05;)
=PLAFOND(A15;0,05)
=ArrA5cts(A15)
**1,28 --> 1,3 --> 1,3 --> 1,3
**1,25 --> 1,25 --> 1,25 --> 1,25
**1,24 --> 1,25 --> 1,25 --> 1,25
**0,003 --> 0 --> 0,05 --> 0
**0,0025 --> 0 --> 0,05 --> 0
**0,002 --> 0 --> 0,05 --> 0
Les 1e et 3e résultats me semblent corrects, la proposition d'Isa convenant
parfaitement pour arrondir les centimes au multiple de 5 supérieur, mais
qu'elle était précisément le souhait du demandeur...
et surtout le résultat sur la valeur 0.0025 !!!
ChrisV
"isabelle" a écrit dans le message de news:
%bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelleBonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5 (pas les
autres) au nombre pair le plus proche, ainsi round(9.5,2) = round(10.5,2)
= 10Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
Bonjour à tous,
Ma version d'Excel souffrirait-elle d'un micro climat..?
(20°8 C à 00:10...)
avec les valeurs suivantes **, j'obtient les résultats suivants --->:
avec de la gauche vers la droite:
=ARRONDI(A15*20;)/20 ou =0,05*ARRONDI(A15/0,05;)
=PLAFOND(A15;0,05)
=ArrA5cts(A15)
**1,28 --> 1,3 --> 1,3 --> 1,3
**1,25 --> 1,25 --> 1,25 --> 1,25
**1,24 --> 1,25 --> 1,25 --> 1,25
**0,003 --> 0 --> 0,05 --> 0
**0,0025 --> 0 --> 0,05 --> 0
**0,002 --> 0 --> 0,05 --> 0
Les 1e et 3e résultats me semblent corrects, la proposition d'Isa convenant
parfaitement pour arrondir les centimes au multiple de 5 supérieur, mais
qu'elle était précisément le souhait du demandeur...
et surtout le résultat sur la valeur 0.0025 !!!
ChrisV
"isabelle" <hoHoho@hohoHo> a écrit dans le message de news:
%23HLwIbFcFHA.2960@TK2MSFTNGP09.phx.gbl...
bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelle
Bonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5 (pas les
autres) au nombre pair le plus proche, ainsi round(9.5,2) = round(10.5,2)
= 10
Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
Bonjour à tous,
Ma version d'Excel souffrirait-elle d'un micro climat..?
(20°8 C à 00:10...)
avec les valeurs suivantes **, j'obtient les résultats suivants --->:
avec de la gauche vers la droite:
=ARRONDI(A15*20;)/20 ou =0,05*ARRONDI(A15/0,05;)
=PLAFOND(A15;0,05)
=ArrA5cts(A15)
**1,28 --> 1,3 --> 1,3 --> 1,3
**1,25 --> 1,25 --> 1,25 --> 1,25
**1,24 --> 1,25 --> 1,25 --> 1,25
**0,003 --> 0 --> 0,05 --> 0
**0,0025 --> 0 --> 0,05 --> 0
**0,002 --> 0 --> 0,05 --> 0
Les 1e et 3e résultats me semblent corrects, la proposition d'Isa convenant
parfaitement pour arrondir les centimes au multiple de 5 supérieur, mais
qu'elle était précisément le souhait du demandeur...
et surtout le résultat sur la valeur 0.0025 !!!
ChrisV
"isabelle" a écrit dans le message de news:
%bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelleBonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5 (pas les
autres) au nombre pair le plus proche, ainsi round(9.5,2) = round(10.5,2)
= 10Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
hello ChrisV,
c'est un micro climat qui se répend car avec 0.0025 et
=ARRONDI(A15*20;)/20 j'obtiens également 0
isabelleBonjour à tous,
Ma version d'Excel souffrirait-elle d'un micro climat..?
(20°8 C à 00:10...)
avec les valeurs suivantes **, j'obtient les résultats suivants --->:
avec de la gauche vers la droite:
=ARRONDI(A15*20;)/20 ou =0,05*ARRONDI(A15/0,05;)
=PLAFOND(A15;0,05)
=ArrA5cts(A15)
**1,28 --> 1,3 --> 1,3 --> 1,3
**1,25 --> 1,25 --> 1,25 --> 1,25
**1,24 --> 1,25 --> 1,25 --> 1,25
**0,003 --> 0 --> 0,05 --> 0
**0,0025 --> 0 --> 0,05 --> 0
**0,002 --> 0 --> 0,05 --> 0
Les 1e et 3e résultats me semblent corrects, la proposition d'Isa
convenant parfaitement pour arrondir les centimes au multiple de 5
supérieur, mais qu'elle était précisément le souhait du demandeur...
et surtout le résultat sur la valeur 0.0025 !!!
ChrisV
"isabelle" a écrit dans le message de news:
%bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelleBonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5
(pas les autres) au nombre pair le plus proche, ainsi round(9.5,2) =
round(10.5,2) = 10Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et
au supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
hello ChrisV,
c'est un micro climat qui se répend car avec 0.0025 et
=ARRONDI(A15*20;)/20 j'obtiens également 0
isabelle
Bonjour à tous,
Ma version d'Excel souffrirait-elle d'un micro climat..?
(20°8 C à 00:10...)
avec les valeurs suivantes **, j'obtient les résultats suivants --->:
avec de la gauche vers la droite:
=ARRONDI(A15*20;)/20 ou =0,05*ARRONDI(A15/0,05;)
=PLAFOND(A15;0,05)
=ArrA5cts(A15)
**1,28 --> 1,3 --> 1,3 --> 1,3
**1,25 --> 1,25 --> 1,25 --> 1,25
**1,24 --> 1,25 --> 1,25 --> 1,25
**0,003 --> 0 --> 0,05 --> 0
**0,0025 --> 0 --> 0,05 --> 0
**0,002 --> 0 --> 0,05 --> 0
Les 1e et 3e résultats me semblent corrects, la proposition d'Isa
convenant parfaitement pour arrondir les centimes au multiple de 5
supérieur, mais qu'elle était précisément le souhait du demandeur...
et surtout le résultat sur la valeur 0.0025 !!!
ChrisV
"isabelle" <hoHoho@hohoHo> a écrit dans le message de news:
%23HLwIbFcFHA.2960@TK2MSFTNGP09.phx.gbl...
bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelle
Bonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5
(pas les autres) au nombre pair le plus proche, ainsi round(9.5,2) =
round(10.5,2) = 10
Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et
au supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
hello ChrisV,
c'est un micro climat qui se répend car avec 0.0025 et
=ARRONDI(A15*20;)/20 j'obtiens également 0
isabelleBonjour à tous,
Ma version d'Excel souffrirait-elle d'un micro climat..?
(20°8 C à 00:10...)
avec les valeurs suivantes **, j'obtient les résultats suivants --->:
avec de la gauche vers la droite:
=ARRONDI(A15*20;)/20 ou =0,05*ARRONDI(A15/0,05;)
=PLAFOND(A15;0,05)
=ArrA5cts(A15)
**1,28 --> 1,3 --> 1,3 --> 1,3
**1,25 --> 1,25 --> 1,25 --> 1,25
**1,24 --> 1,25 --> 1,25 --> 1,25
**0,003 --> 0 --> 0,05 --> 0
**0,0025 --> 0 --> 0,05 --> 0
**0,002 --> 0 --> 0,05 --> 0
Les 1e et 3e résultats me semblent corrects, la proposition d'Isa
convenant parfaitement pour arrondir les centimes au multiple de 5
supérieur, mais qu'elle était précisément le souhait du demandeur...
et surtout le résultat sur la valeur 0.0025 !!!
ChrisV
"isabelle" a écrit dans le message de news:
%bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelleBonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5
(pas les autres) au nombre pair le plus proche, ainsi round(9.5,2) =
round(10.5,2) = 10Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et
au supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
et j'ajouterais que c'est normal...
et j'ajouterais que c'est normal «mesemble avoir déjà entendu ça ;-)»
puisque,
Si no_chiffres est supérieur à 0 (zéro), nombre est arrondi au nombre de
décimales indiqué.
Si no_chiffres est égal à 0, nombre est arrondi au nombre entier le plus
proche.
Si no_chiffres est inférieur à 0, nombre est arrondi à gauche de la
virgule.
isabellehello ChrisV,
c'est un micro climat qui se répend car avec 0.0025 et
=ARRONDI(A15*20;)/20 j'obtiens également 0
isabelleBonjour à tous,
Ma version d'Excel souffrirait-elle d'un micro climat..?
(20°8 C à 00:10...)
avec les valeurs suivantes **, j'obtient les résultats suivants --->:
avec de la gauche vers la droite:
=ARRONDI(A15*20;)/20 ou =0,05*ARRONDI(A15/0,05;)
=PLAFOND(A15;0,05)
=ArrA5cts(A15)
**1,28 --> 1,3 --> 1,3 --> 1,3
**1,25 --> 1,25 --> 1,25 --> 1,25
**1,24 --> 1,25 --> 1,25 --> 1,25
**0,003 --> 0 --> 0,05 --> 0
**0,0025 --> 0 --> 0,05 --> 0
**0,002 --> 0 --> 0,05 --> 0
Les 1e et 3e résultats me semblent corrects, la proposition d'Isa
convenant parfaitement pour arrondir les centimes au multiple de 5
supérieur, mais qu'elle était précisément le souhait du demandeur...
et surtout le résultat sur la valeur 0.0025 !!!
ChrisV
"isabelle" a écrit dans le message de news:
%bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelleBonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5 (pas
les autres) au nombre pair le plus proche, ainsi round(9.5,2) =
round(10.5,2) = 10Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
et j'ajouterais que c'est normal...
et j'ajouterais que c'est normal «mesemble avoir déjà entendu ça ;-)»
puisque,
Si no_chiffres est supérieur à 0 (zéro), nombre est arrondi au nombre de
décimales indiqué.
Si no_chiffres est égal à 0, nombre est arrondi au nombre entier le plus
proche.
Si no_chiffres est inférieur à 0, nombre est arrondi à gauche de la
virgule.
isabelle
hello ChrisV,
c'est un micro climat qui se répend car avec 0.0025 et
=ARRONDI(A15*20;)/20 j'obtiens également 0
isabelle
Bonjour à tous,
Ma version d'Excel souffrirait-elle d'un micro climat..?
(20°8 C à 00:10...)
avec les valeurs suivantes **, j'obtient les résultats suivants --->:
avec de la gauche vers la droite:
=ARRONDI(A15*20;)/20 ou =0,05*ARRONDI(A15/0,05;)
=PLAFOND(A15;0,05)
=ArrA5cts(A15)
**1,28 --> 1,3 --> 1,3 --> 1,3
**1,25 --> 1,25 --> 1,25 --> 1,25
**1,24 --> 1,25 --> 1,25 --> 1,25
**0,003 --> 0 --> 0,05 --> 0
**0,0025 --> 0 --> 0,05 --> 0
**0,002 --> 0 --> 0,05 --> 0
Les 1e et 3e résultats me semblent corrects, la proposition d'Isa
convenant parfaitement pour arrondir les centimes au multiple de 5
supérieur, mais qu'elle était précisément le souhait du demandeur...
et surtout le résultat sur la valeur 0.0025 !!!
ChrisV
"isabelle" <hoHoho@hohoHo> a écrit dans le message de news:
%23HLwIbFcFHA.2960@TK2MSFTNGP09.phx.gbl...
bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelle
Bonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5 (pas
les autres) au nombre pair le plus proche, ainsi round(9.5,2) =
round(10.5,2) = 10
Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
et j'ajouterais que c'est normal...
et j'ajouterais que c'est normal «mesemble avoir déjà entendu ça ;-)»
puisque,
Si no_chiffres est supérieur à 0 (zéro), nombre est arrondi au nombre de
décimales indiqué.
Si no_chiffres est égal à 0, nombre est arrondi au nombre entier le plus
proche.
Si no_chiffres est inférieur à 0, nombre est arrondi à gauche de la
virgule.
isabellehello ChrisV,
c'est un micro climat qui se répend car avec 0.0025 et
=ARRONDI(A15*20;)/20 j'obtiens également 0
isabelleBonjour à tous,
Ma version d'Excel souffrirait-elle d'un micro climat..?
(20°8 C à 00:10...)
avec les valeurs suivantes **, j'obtient les résultats suivants --->:
avec de la gauche vers la droite:
=ARRONDI(A15*20;)/20 ou =0,05*ARRONDI(A15/0,05;)
=PLAFOND(A15;0,05)
=ArrA5cts(A15)
**1,28 --> 1,3 --> 1,3 --> 1,3
**1,25 --> 1,25 --> 1,25 --> 1,25
**1,24 --> 1,25 --> 1,25 --> 1,25
**0,003 --> 0 --> 0,05 --> 0
**0,0025 --> 0 --> 0,05 --> 0
**0,002 --> 0 --> 0,05 --> 0
Les 1e et 3e résultats me semblent corrects, la proposition d'Isa
convenant parfaitement pour arrondir les centimes au multiple de 5
supérieur, mais qu'elle était précisément le souhait du demandeur...
et surtout le résultat sur la valeur 0.0025 !!!
ChrisV
"isabelle" a écrit dans le message de news:
%bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelleBonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5 (pas
les autres) au nombre pair le plus proche, ainsi round(9.5,2) =
round(10.5,2) = 10Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5 et au
supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
Salut Isa,et j'ajouterais que c'est normal...
personne n'ayant "tilté" au "résultat initial" (>...Le résultat est 0.05,
ce qui est juste) du demandeur...
voilà maintenant qui me rassure ;-)
ChrisV
"isabelle" a écrit dans le message de news:et j'ajouterais que c'est normal «mesemble avoir déjà entendu ça ;-)»
puisque,
Si no_chiffres est supérieur à 0 (zéro), nombre est arrondi au
nombre de décimales indiqué.
Si no_chiffres est égal à 0, nombre est arrondi au nombre entier le
plus proche.
Si no_chiffres est inférieur à 0, nombre est arrondi à gauche de la
virgule.
isabellehello ChrisV,
c'est un micro climat qui se répend car avec 0.0025 et
=ARRONDI(A15*20;)/20 j'obtiens également 0
isabelleBonjour à tous,
Ma version d'Excel souffrirait-elle d'un micro climat..?
(20°8 C à 00:10...)
avec les valeurs suivantes **, j'obtient les résultats suivants
--->: avec de la gauche vers la droite:
=ARRONDI(A15*20;)/20 ou =0,05*ARRONDI(A15/0,05;)
=PLAFOND(A15;0,05)
=ArrA5cts(A15)
**1,28 --> 1,3 --> 1,3 --> 1,3
**1,25 --> 1,25 --> 1,25 --> 1,25
**1,24 --> 1,25 --> 1,25 --> 1,25
**0,003 --> 0 --> 0,05 --> 0
**0,0025 --> 0 --> 0,05 --> 0
**0,002 --> 0 --> 0,05 --> 0
Les 1e et 3e résultats me semblent corrects, la proposition d'Isa
convenant parfaitement pour arrondir les centimes au multiple de 5
supérieur, mais qu'elle était précisément le souhait du
demandeur... et surtout le résultat sur la valeur 0.0025 !!!
ChrisV
"isabelle" a écrit dans le message de news:
%bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelleBonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5
(pas les autres) au nombre pair le plus proche, ainsi
round(9.5,2) = round(10.5,2) = 10Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5
et au supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
Salut Isa,
et j'ajouterais que c'est normal...
personne n'ayant "tilté" au "résultat initial" (>...Le résultat est 0.05,
ce qui est juste) du demandeur...
voilà maintenant qui me rassure ;-)
ChrisV
"isabelle" <hoHoho@hohoHo> a écrit dans le message de news:
uGxwHaHcFHA.3488@tk2msftngp13.phx.gbl...
et j'ajouterais que c'est normal «mesemble avoir déjà entendu ça ;-)»
puisque,
Si no_chiffres est supérieur à 0 (zéro), nombre est arrondi au
nombre de décimales indiqué.
Si no_chiffres est égal à 0, nombre est arrondi au nombre entier le
plus proche.
Si no_chiffres est inférieur à 0, nombre est arrondi à gauche de la
virgule.
isabelle
hello ChrisV,
c'est un micro climat qui se répend car avec 0.0025 et
=ARRONDI(A15*20;)/20 j'obtiens également 0
isabelle
Bonjour à tous,
Ma version d'Excel souffrirait-elle d'un micro climat..?
(20°8 C à 00:10...)
avec les valeurs suivantes **, j'obtient les résultats suivants
--->: avec de la gauche vers la droite:
=ARRONDI(A15*20;)/20 ou =0,05*ARRONDI(A15/0,05;)
=PLAFOND(A15;0,05)
=ArrA5cts(A15)
**1,28 --> 1,3 --> 1,3 --> 1,3
**1,25 --> 1,25 --> 1,25 --> 1,25
**1,24 --> 1,25 --> 1,25 --> 1,25
**0,003 --> 0 --> 0,05 --> 0
**0,0025 --> 0 --> 0,05 --> 0
**0,002 --> 0 --> 0,05 --> 0
Les 1e et 3e résultats me semblent corrects, la proposition d'Isa
convenant parfaitement pour arrondir les centimes au multiple de 5
supérieur, mais qu'elle était précisément le souhait du
demandeur... et surtout le résultat sur la valeur 0.0025 !!!
ChrisV
"isabelle" <hoHoho@hohoHo> a écrit dans le message de news:
%23HLwIbFcFHA.2960@TK2MSFTNGP09.phx.gbl...
bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelle
Bonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5
(pas les autres) au nombre pair le plus proche, ainsi
round(9.5,2) = round(10.5,2) = 10
Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5
et au supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?
Salut Isa,et j'ajouterais que c'est normal...
personne n'ayant "tilté" au "résultat initial" (>...Le résultat est 0.05,
ce qui est juste) du demandeur...
voilà maintenant qui me rassure ;-)
ChrisV
"isabelle" a écrit dans le message de news:et j'ajouterais que c'est normal «mesemble avoir déjà entendu ça ;-)»
puisque,
Si no_chiffres est supérieur à 0 (zéro), nombre est arrondi au
nombre de décimales indiqué.
Si no_chiffres est égal à 0, nombre est arrondi au nombre entier le
plus proche.
Si no_chiffres est inférieur à 0, nombre est arrondi à gauche de la
virgule.
isabellehello ChrisV,
c'est un micro climat qui se répend car avec 0.0025 et
=ARRONDI(A15*20;)/20 j'obtiens également 0
isabelleBonjour à tous,
Ma version d'Excel souffrirait-elle d'un micro climat..?
(20°8 C à 00:10...)
avec les valeurs suivantes **, j'obtient les résultats suivants
--->: avec de la gauche vers la droite:
=ARRONDI(A15*20;)/20 ou =0,05*ARRONDI(A15/0,05;)
=PLAFOND(A15;0,05)
=ArrA5cts(A15)
**1,28 --> 1,3 --> 1,3 --> 1,3
**1,25 --> 1,25 --> 1,25 --> 1,25
**1,24 --> 1,25 --> 1,25 --> 1,25
**0,003 --> 0 --> 0,05 --> 0
**0,0025 --> 0 --> 0,05 --> 0
**0,002 --> 0 --> 0,05 --> 0
Les 1e et 3e résultats me semblent corrects, la proposition d'Isa
convenant parfaitement pour arrondir les centimes au multiple de 5
supérieur, mais qu'elle était précisément le souhait du
demandeur... et surtout le résultat sur la valeur 0.0025 !!!
ChrisV
"isabelle" a écrit dans le message de news:
%bonjour,
il n'y a pas ce problème avec,
=PLAFOND(A1;0.05)
montant = 0.0025
MT = Application.Ceiling(montant, 0.05)
isabelleBonsoir,
C'est même pire que çà, la fonction round arrondi les nombres ,5
(pas les autres) au nombre pair le plus proche, ainsi
round(9.5,2) = round(10.5,2) = 10Bonsoir
Je pense que round de vba arrondit au nombre inférieur pour <=5
et au supérieur pour >5
Tu peux corriger cela avec
Function ArrA5cts(val)
ArrA5cts = WorksheetFunction.Round(val * 20, 0) / 20
End Function
qui utiliser la fonction Round d'Excel et non celle de VBA.
Ok?