Microsoft 365 Arrondir une valeur avant de la coller

  • Initiateur de la discussion Initiateur de la discussion pat66
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pat66

XLDnaute Impliqué
Bonsoir le forum,

Je n'arrive pas à arrondir la valeur de M25 (168536) avant de la coller dans R16 ainsi (168500), j'ai bien essayé avec Round, mais je n'y arrive pas.
pourriez vous m'aider, svp

VB:
Sheets("[B]Feuil1[/B]").Range("R16") = Sheets("[B]Feuil2[/B]").Range("$M$25")

merci beaucoup
 
Solution
Re,
Vous ne pourriez pas donner toutes les infos d'un coup, cela éviterait de reworker en permanence.
Essayez ça :
VB:
Function Arrondi(N)
    If CInt(Right(N, 3)) > 500 Then Ajout = 1 Else Ajout = 0
    Arrondi = (Ajout + Int(N / 1000)) * 1000
End Function
Donc c'est arrondi au milieu inférieur ou supérieur. ( donc rien à voir avec la première demande )
de 168000 à 168500 donnera 168000
de 168501 à 168999 donnera 169000
Bonsoir Sylvanu,

merci pour votre aide,

mais si A=168100 et que je souhaite arrondir à 168000, ça fonctionne aussi ? mais j'aurai 168100, alors je préfère arrondir à 168000 ce sera plus simple

merci
 
Dernière édition:
Re,
Ben non ....
168100 donnerait 168100 🙂
Donnez plus de détails sur ce que vous voulez.

Si la règle est si le nombre se termine avec 2 zéros on arrondi au millier inférieur sinon à la centaine inférieure, alors une approche possible avec une fonction :
Code:
Function Arrondi(N)
    If Int(N / 100) * 100 = N Then D = 1000 Else D = 100
    Arrondi = Int(N / D) * D
End Function
Son utilisation serait alors du genre :
Code:
Sub Essai()
    Sheets("Feuil1").Range("R16") = Arrondi(Sheets("Feuil2").Range("$M$25"))
End Sub
 
Dernière édition:
re,

C'est parfait, j'ai juste modifié Else D = 100 par Else D = 1000 pour arrondir au millier inférieur

pour être complet, pourriez vous m'indiquer comment arrondir au millier supérieur, afin que si :
A < 168500 donne 168000
A > 168600 donne 169000

en tout cas, merci beaucoup Sylvanu
 
Re,
Vous ne pourriez pas donner toutes les infos d'un coup, cela éviterait de reworker en permanence.
Essayez ça :
VB:
Function Arrondi(N)
    If CInt(Right(N, 3)) > 500 Then Ajout = 1 Else Ajout = 0
    Arrondi = (Ajout + Int(N / 1000)) * 1000
End Function
Donc c'est arrondi au milieu inférieur ou supérieur. ( donc rien à voir avec la première demande )
de 168000 à 168500 donnera 168000
de 168501 à 168999 donnera 169000
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
860
Retour