Sub Tirages()
Dim tim, cible, mini, t, ub, a, i&, s, j&, b
tim = Timer
cible = [C73]
mini = [E73] - cible
t = [E4:E71]: ub = UBound(t)
ReDim a(1 To ub)
Randomize
For i = 1 To 1000000 'nombre d'itérations à adapter
s = 0
For j = 1 To ub
a(j) = -(Rnd > 0.5) * t(j, 1)
s = s + a(j)
Next
s = Abs(s - cible)
If s < mini Then mini = s: b = a
Next
[G4:G71] = Application.Transpose(b)
MsgBox "Durée " & Format(Timer - tim, "0.00 \s") & vbLf & "Ecart " & mini
End Sub