Function ListeSomme(ByVal Somme As Double, ByVal Rng As Range)
Dim TDon(), TEss(), MeilDif As Double, N As Long, SEss As Double, LR As Byte, LD As Byte, Dif As Double
TDon = Rng.Value
MeilDif = (2 ^ 53 - 1) * 2 ^ 971
For N = 1 To 2 ^ UBound(TDon, 1) - 1
ReDim TEss(1 To UBound(TDon, 1), 1 To 1): SEss = 0: LR = 0
For LD = 1 To UBound(TDon, 1)
If N And 2 ^ (LD - 1) Then
LR = LR + 1: TEss(LR, 1) = TDon(LD, 1)
SEss = SEss + TDon(LD, 1): End If
Next LD
Dif = Abs(SEss - Somme)
If Dif < MeilDif Then
While LR < UBound(TEss, 1): LR = LR + 1: TEss(LR, 1) = "": Wend
MeilDif = Dif: ListeSomme = TEss: End If
Next N
End Function