Somme des arrondis différente du montant initial à répartir

KIM

XLDnaute Accro
Bonjour les ami(e)s et le forum,

J'ai un montant à répartir selon des clés de répartition. La somme des arrondis est différente du montant initial. J'ai trouvé la formule suivante dans le forum =SI(MOD(C7;1)>=0,5;ENT(C7)+1;ENT(C7)) qui n'a pas résolu cette différence.

Y-a-t-il une formule ou en vba pour régler ce problème.

Merci de votre aide
KIM
 

Pièces jointes

  • SommeDesArrondis_v1.xlsx
    11 KB · Affichages: 35

KIM

XLDnaute Accro
Re : Somme des arrondis différente du montant initial à répartir

Merci bien Dranreb, la fonction me donne les résultats attendus.
Une dernière question, Resize (7), redimensionne le nombre de cellules à partir de la E8. Le nombre de lignes n'est pas connu d'avance, Comment la rendre dynamique ?

Bonne fin de journée
KIM
 

cheyenne63

XLDnaute Occasionnel
Bonjour
excusez moi de m'incruster dans ce fil mais, je ne parviens pas à :
- Adapter la macro avec 2 chiffres après la virgule (colonne D)
- L'adapter selon nombre de valeur en colonne C (nombre variable)
Merci d'avance
 

Pièces jointes

  • SommeDesArrondis_v1-2 - Copie.xlsm
    16.9 KB · Affichages: 30

Dranreb

XLDnaute Barbatruc
Bonjour.

Comme ça :
VB:
Option Explicit

Sub Répartition()
Dim ColSrc As Range
Set ColSrc = Feuil1.[C8].Resize(Feuil1.[C1000000].End(xlUp).Row - 7)
ColSrc.Offset(, 1).Value = RépArr(Feuil1.[B5].Value, ColSrc)
End Sub

Function RépArr(ByVal MonTot As Double, Parts) As Variant()
Dim Te(), Ts(), L&, TotParts As Double
If TypeName(Parts) = "Range" Then Te = Parts.Value Else Te = Parts
ReDim Ts(1 To UBound(Te, 1), 1 To 1)
For L = UBound(Te) To 1 Step -1: TotParts = TotParts + Te(L, 1): Ts(L, 1) = TotParts: Next L
For L = 1 To UBound(Te): Ts(L, 1) = Int(MonTot * 100 * Te(L, 1) / Ts(L, 1) + 0.5) / 100
  MonTot = MonTot - Ts(L, 1): Next L
RépArr = Ts
End Function
 

Discussions similaires