Function calcul(nombre As Long)
Dim oDat(), i As Long, j As Long, k As Long, l As Long, m As Long, n As Long
Dim a1 As Long, a2 As Long, a3 As Long, a4 As Long, a5 As Long
oDat = Array(4, 10, 50, 100, 154, 1000, 44444)
For i = 0 To 6
a1 = oDat(i)
If nombre = a1 Then Exit For
Next i
If i > 6 Then
For i = 0 To 5
a1 = oDat(i)
For j = i + 1 To 6
If nombre = a1 + oDat(j) Then Exit For
Next j
If j < 7 Then Exit For
Next i
If i > 5 Then
For i = 0 To 4
a1 = oDat(i)
For j = i + 1 To 5
a2 = a1 + oDat(j)
For k = j + 1 To 6
If nombre = a2 + oDat(k) Then Exit For
Next k
If k < 7 Then Exit For
Next j
If j < 6 Then Exit For
Next i
If i > 4 Then
For i = 0 To 3
a1 = oDat(i)
For j = i + 1 To 4
a2 = a1 + oDat(j)
For k = j + 1 To 5
a3 = a2 + oDat(k)
For l = k + 1 To 6
If nombre = a3 + oDat(l) Then Exit For
Next l
If l < 7 Then Exit For
Next k
If k < 6 Then Exit For
Next j
If j < 5 Then Exit For
Next i
If i > 3 Then
For i = 0 To 2
a1 = oDat(i)
For j = i + 1 To 3
a2 = a1 + oDat(j)
For k = j + 1 To 4
a3 = a2 + oDat(k)
For l = k + 1 To 5
a4 = a3 + oDat(l)
For m = l + 1 To 6
If nombre = a4 + oDat(m) Then Exit For
Next m
If m < 7 Then Exit For
Next l
If l < 6 Then Exit For
Next k
If k < 5 Then Exit For
Next j
If j < 4 Then Exit For
Next i
If i > 2 Then
For i = 0 To 1
a1 = oDat(i)
For j = i + 1 To 2
a2 = a1 + oDat(j)
For k = j + 1 To 3
a3 = a2 + oDat(k)
For l = k + 1 To 4
a4 = a3 + oDat(l)
For m = l + 1 To 5
a5 = a4 + oDat(m)
For n = m + 1 To 6
If nombre = a5 + oDat(n) Then Exit For
Next n
If n < 7 Then Exit For
Next m
If m < 6 Then Exit For
Next l
If l < 5 Then Exit For
Next k
If k < 4 Then Exit For
Next j
If j < 3 Then Exit For
Next i
If i > 1 Then
If nombre = oDat(0) + oDat(1) + oDat(2) + oDat(3) + oDat(4) + oDat(5) + oDat(6) Then
calcul = "=" & oDat(0) & "+" & oDat(1) & "+" & oDat(2) & "+" & oDat(3) & "+" & oDat(4) & "+" & oDat(5) & "+" & oDat(6)
Else
calcul = "pas de solution"
End If
Else
calcul = "=" & a1 & "+" & oDat(j) & "+" & oDat(k) & "+" & oDat(l) & "+" & oDat(m) & "+" & oDat(n)
End If
Else
calcul = "=" & a1 & "+" & oDat(j) & "+" & oDat(k) & "+" & oDat(l) & "+" & oDat(m)
End If
Else
calcul = "=" & a1 & "+" & oDat(j) & "+" & oDat(k) & "+" & oDat(l)
End If
Else
calcul = "=" & a1 & "+" & oDat(j) & "+" & oDat(k)
End If
Else
calcul = "=" & a1 & "+" & oDat(j)
End If
Else
calcul = "=" & a1
End If
End Function