Arrondi

Fermé
magnolia01 Messages postés 20 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 4 juillet 2013 - 2 juil. 2013 à 11:33
magnolia01 Messages postés 20 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 4 juillet 2013 - 4 juil. 2013 à 15:54
Bonjour,

Je souhaiterais savoir s'il est possible d'arrondir en 3 positions: inférieur, milieu et supérieur à 2 chiffres après la virgule :

exemple:

14,364 = 14.35
14,405 = 14.40
14,719 = 14,72

Merci par avance!!!


5 réponses

Utilisateur anonyme
2 juil. 2013 à 11:39
Bonjour,
Clic droit sur la cellule, puis format de la cellule et tu choisis le nombre de chiffres que tu veux après la virgule

Même chose avec les touches <0,00 ou 0,00> dans le ruban, rubrique nombre
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
2 juil. 2013 à 11:40
Bonjour,

Les formules excel, pour arrondir sont :
=ARRONDI
=ARRONDI.INF
=ARRONDI.SUP

Tu dois leur fournir 2 arguments : le montant à arrondir et le nombre de chiffres après la virgule.

Exemple :
=ARRONDI(14,364;2) va te donner 14,36

Après, Excel possède ses règles (qui sont issues des maths). Ainsi 14,405, en arrondi simple, sera arrondi au chiffre supérieur, soit 14,41. Pour obtenir 14,40, il conviendra d'utiliser ARRONDI.INF.
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
Modifié par eriiic le 2/07/2013 à 12:00
Bonjour à tous,

pijaku, je pense que tu voulais dire Ainsi 14,45, en arrondi simple, sera arrondi au chiffre supérieur, et non 14.405.
eric
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
2 juil. 2013 à 12:55
Salut Eriiic,

Comment va?

non non, je voulais bien dire 14,405. Il est question ici d'arrondis au centième. Soit :
=ARRONDI.INF(14,405;2) => 14,40 (afiché par excel 14,4)
=ARRONDI(14,405;2) => 14,41
=ARRONDI.SUP(14,405;2) => 14,41

Un p'tit café peut être???
;-)
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
2 juil. 2013 à 13:13
Un p'tit café peut être???
ah ben oui, je veux bien :-)
eric
0
magnolia01 Messages postés 20 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 4 juillet 2013
2 juil. 2013 à 14:24
Y-a-t-il une possibilité de faire avec une fonction SI?
par exemple:
=SI(14.364;2) le resultat = 14.35 (dans ce cas le resultat est arrondi inférieur)
=SI(14.405;2) le resultat = 14.40 (il faudrait que le resultat soit tranquer avec cette condition
=SI(14.719;2) le résultat = 14.72 (dans ce cas le résultat est arrondi suppérieur)

Peut-ont mettre ces conditions dans une fonctions SI, est qu'est(ce que cela donnerais.

Merci
0
magnolia01 Messages postés 20 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 4 juillet 2013
2 juil. 2013 à 13:47
Merci à tous,

Voyez vous, mon patron veut que je trouve une formule unique pour les arrondi...
J'ai bien essayé de chercher avant de poser la question sur le forum...

Comment trouver une formule unique pour 3 type d'arrondi alors qu'on ne peut pas changer la règles des maths???

reponse????
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
2 juil. 2013 à 14:24
Comment trouver une formule unique pour 3 type d'arrondi alors qu'on ne peut pas changer la règles des maths???

reponse????


En créant une fonction personnalisée.
Je me penche sur ton cas et reviens tout à l'heure.
0
magnolia01 Messages postés 20 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 4 juillet 2013
2 juil. 2013 à 14:43
Merci
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
2 juil. 2013 à 14:59
Donc, une fonction personnalisée disais-je...

Mise en place :
- ouvrir le classeur,
- taper ALT+F11
- Insertion/Module
- copier-coller ce code dans le module ainsi obtenu :

Function MonPatronAimePasLesMaths(ByVal Valeur, ByVal Decimales)
If Right(Valeur.Value, 1) < 5 Then
    'Merci à Patrice 33740 et Lermitte222
        'ICI : https://www.commentcamarche.net/faq/29243-vba-vb6-les-fonctions-d-arrondi
    MonPatronAimePasLesMaths = Int(Valeur.Value * 10 ^ Decimales - 1 / 2) / 10 ^ Decimales
ElseIf Right(Valeur.Value, 1) > 5 Then
    MonPatronAimePasLesMaths = CDbl(Round(Valeur.Value, Decimales))
Else
    MonPatronAimePasLesMaths = CDbl(Left(Valeur.Value, Len(Valeur.Value) - 1))
End If
End Function

- fermer la fenêtre Visual Basic Editor

Utilisation :

- en cellule A1 (par exemple) saisir : 14,365
- en A2 (par exemple), saisir la formule : =MonPatronAimePasLesMaths(A1;2)

NB : Vous pouvez, à terme, changer le nom de cette fonction, bien entendu ;-)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
2 juil. 2013 à 15:22
Pardon, erreur dans mes copié-collé....
Utilisez ce code:
Function arr(ByVal Valeur, ByVal Decimales)
If Right(Valeur.Value, 1) < 5 Then
    arr = Int(Valeur.Value * 10 ^ Decimales) / 10 ^ Decimales
ElseIf Right(Valeur.Value, 1) > 5 Then
    arr = CDbl(Round(Valeur.Value, Decimales))
Else
    arr = CDbl(Left(Valeur.Value, Len(Valeur.Value) - 1))
End If
End Function


et donc, dans la feuille, cette fonction :
=arr(A1;2)
0
magnolia01 Messages postés 20 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 4 juillet 2013
2 juil. 2013 à 15:44
Merci pour votre aide, j'aurais encore une petite question...
je doit inclure un calcul sur un pourcentage dans ma formule exemple :
=arr(N*n%;2)
En français sa donne ça : exemple :
Remise=(MontantbrutHT*-0.05;2)
Cela doit me donner le résultat de la remise en négatif exemple -32,513€
Et suivant le 3eme chiffre, il faut l'arrondi adequat, d'ou la formule que vous m'avez donnée.
0
magnolia01 Messages postés 20 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 4 juillet 2013
2 juil. 2013 à 15:50
j'espere avoir été clair dans mes explications.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
2 juil. 2013 à 16:01
En A1 : 18.32*(-0.05) [MontantBrutHT*Taux)
En A2 : =arr(A1;2)

Non???
0
magnolia01 Messages postés 20 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 4 juillet 2013
2 juil. 2013 à 16:13
pas exactement....
En A1 : =arr(18.32*(-0.05);2)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
3 juil. 2013 à 09:55
Salut,
C'est normal que cela ne marche pas tous le temps?
Ben oui. Je suis parti du principe que tu cherchais à arrondir systématiquement un nombre qui possède trois chiffres après la virgule. Ma fonction ne prenait pas en compte les autres cas.
Celle-ci le devrait...

Peux tu, s'il te plait, la tester dans tous les cas possibles et imaginables?
En effet, ce genre de petite fonction peut être utile à d'autres.
Merci d'avance de ton retour.

Function ArrNbDec(ByVal Valeur, ByVal Decimales)
Dim NbDroite As Byte, Separ

Separ = Application.International(xlDecimalSeparator)
If Len(Valeur) - InStr(Valeur, Separ) > Decimales Then
    NbDroite = Val(Mid(Valeur, InStr(Valeur, Separ) + Decimales + 1, 1))
Else
    NbDroite = Right(Valeur, 1)
End If
If NbDroite < 5 Then
    ArrNbDec = Int(Valeur * 10 ^ Decimales) / 10 ^ Decimales
ElseIf NbDroite > 5 Then
    ArrNbDec = CDbl(Round(Valeur, Decimales))
Else
    ArrNbDec = CDbl(Left(Valeur, InStr(Valeur, Separ) + Decimales))
End If
End Function

0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
Modifié par eriiic le 3/07/2013 à 10:55
Bonjour,

728.06*(-0.180)=-13.11 ???
Tu travailles en quelle base ?
Et pourquoi 14,364 devrait retourner 14.35 et non 14.36 ?

Sinon par formule :
=SI(ET(DROITE(B2;1)="5";MOD(A2;1));ARRONDI.INF(A2;2);ARRONDI(A2;2))

pijaku, je me demande s'il n'y a pas un pb sur les nombres négatifs pour ta fonction :
=ArrNbDec(-131.0508;2) retourne -131.06
Ce qui mathématiquement est bon. Mais je me demande si elle ne veut pas -131.05.
Si tu pouvais préciser magnolia.

eric
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
3 juil. 2013 à 11:23
Salut Eriiic,
Merci de l'intervention...
En fait, je n'ai pas trop le temps de tout tester, donc je laisse les tests à Magnolia et améliore la fonction au fur et à mesure...

Pour ce qui est de 728.06*(-0.180), j'ai cru comprendre qu'il s'agit en fait de : 728.06*(-0.0180)
0
magnolia01 Messages postés 20 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 4 juillet 2013
3 juil. 2013 à 14:55
Merci de vous pencher sur le sujet sa m'aide beaucoup...
PIJAKU je test a chaque fois tes fonctions sur plusieurs cas pour voir si cela fonctionne.
ERIC et PIJAKU je vais essayer de vous donner un exemple plus parlant:

Je fait actuellement des tableau qui recensent les facture clients et detaillé : dans l'ordre ça donne : Montant brut HT / %de la remise / Montant de la remise / Montant Net ht / tva puis TTC)

exemple avec des chifre : 489.30 (=montant brut ht) 5%(=pourcentage de la remise) -24.46(=le montant de la remise) 464.84(=montant net ht) 91.11(=tva) 55.95(=ttc)

Jusque la j'ai perdu personne???

Donc quand je calcul le montant de la remise à la calculatrice cela me donne -24.465 et mathématiquement si j'arrondi au dixième cela devraits me faire -24.47 mais dans le ca ou il y a un 5 trois chiffres apès la virgule je souhaiterais que le nombre soit tronque et qu'il reste a -24.46.

Pour les arrondi inferieur et supérieur je laisse comme tel c'est a dire que si le troisieme chiffre apres la virugule est supérieur a 5 cela va arrondir a la décimal au decu, idem si c'est inferieur a 5.

Jespere que cela est plus clair.
0
magnolia01 Messages postés 20 Date d'inscription mardi 2 juillet 2013 Statut Membre Dernière intervention 4 juillet 2013
3 juil. 2013 à 15:08
Pijaku
il s'agit bien de 728.06*(-0.0180) ici le pourcentage est de 1.80 et c'est le montant de la remise donc qui est calculé...
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
3 juil. 2013 à 15:27
Re-

J'ai testé, et, du moins il me semble, ma formule donnée plus haut (le : 3 juil. 2013 à 09:55) fonctionne dans tous tes cas de figure.
Elle fonctionne même si tu demande un arrondi à 3 ou 4 ou 5 chiffres après la virgule.....
0