Arrondi

Résolu/Fermé
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022 - 27 mars 2015 à 19:41
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022 - 2 avril 2015 à 08:15
Bonjour à tous,

J'ai un problème d'arrondi, quand j'ai un nombre 2.90 et que je l'arrondi avec le code ci-dessous cela me fait 3.00 alors que le calcul est 2.90 + 0.29 donc 3.19, j'ai fais des essais avec 0.25, c'est pareil.

je ne trouve pas de solution , auriez vous une explication à mon problème.

prix_cond = prix_cond / Cells(J, 29)
prix_cond = prix_cond + Cells(J, 22)
prix_cond = Round(prix_cond, 0.5)
Cells(J, 26) = prix_cond

Merci.

Bonne soirée.
Pascal

9 réponses

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
28 mars 2015 à 06:37
Bonjour
Normal, vous demandez un arrondi à 0,5, autant dire 0, donc pas de décimales.
Faite un essai avec une formule excel, il vous renverra la même chose.
Corrigez avec arrondi 2
prix_cond = Round(prix_cond, 2)
cdlt
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
28 mars 2015 à 08:48
Bonjour Frenchie83,

Merci pour votre réponse, j'ai fait un essai, mais je cherche à avoir des nombres qui finissent par 3.20 pour mon exemple ou par 0.05, je veux supprimer les 1, 2 ,3 ,4 ,6 , 7, 8 , 9.

Je ne sais pas si mon explication est compréhensible.

Bonne journée.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
28 mars 2015 à 09:50
Re
proposition en formule excel,
=SI(ABS(PLANCHER(A1;0,05)-A1)<ABS(PLAFOND(A1;0,05)-A1);PLANCHER(A1;0,05);PLAFOND(A1;0,05))
remplacez "A1" par votre valeur à tester
cdlt
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 423
Modifié par ccm81 le 28/03/2015 à 10:13
Bonjour à tous les deux

tu as aussi

=SI(MOD(10*A1;1)=0,5;A1;SI(MOD(10*A1;1)<0,5;ENT(10*A1)/10;(1+ENT(10*A1))/10))

et en vba

Public Function Arr(c As Single) As Single
Dim c10 As Single
c10 = (10 * c) - Int(10 * c)
If c10 = 0.5 Then
  Arr = c
ElseIf c10 < 0.5 Then
  Arr = Int(10 * c) / 10
Else
  Arr = (1 + Int(10 * c)) / 10
End If
End Function

Cdlmnt
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 423
28 mars 2015 à 11:19
Et en plus simple
=ARRONDI(20*A1;0)/20
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 423
28 mars 2015 à 14:46
et en vba
Public Function arr005(c As Double) As Double
arr005 = Round(20 * c) / 20
End Function
0

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

Posez votre question
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
28 mars 2015 à 22:52
Bonjour,

il y a aussi :
=ARRONDI.AU.MULTIPLE(A2;0.05)
eric
0
Bonjour à tous,

Je vais essayer de mettre en application dans mon code et je reviens vers vous si j'ai besoin de vos lumières.

Je débute dans le vba et c'est pas très facile.

Bonne journée.

Pascal
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
30 mars 2015 à 16:59
Je vous remercie tous pour votre aide , mais je n'arrive pas à l'intégrer dans mon code vba de mon fichier.

Mon code est le suivant :

prix_cond = prix_cond / Cells(J, 29)
prix_cond = prix_cond + Cells(J, 22)
prix_cond = Round(prix_cond, 0.5)
Cells(J, 26) = prix_cond

Merci.

Bonne journée.

Pascal
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 423
30 mars 2015 à 17:12
Essaies ceci

prix_cond = Round(20 * prix_cond) / 20
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
2 avril 2015 à 08:15
Je te remercie pour ton aide, j'ai réussi à mettre ce code et celui ci fonctionne parfaitement.

Bonne journée.

Amicalement.

Pascal
0
pascalou83400 Messages postés 273 Date d'inscription dimanche 20 juillet 2014 Statut Membre Dernière intervention 24 janvier 2022
2 avril 2015 à 08:14
Bonjour,

Je vous remercie pour votre aide, la formule de ccm81 fonctionne à merveille.

Je vous souhaite une bonne journée.

Amicalement.

Pascal
0