Bonjour,
J'ai trouvé un petit programme sur le net qui affiche un message avec toutes les possibilités de termes pour une somme donnée.
J'aimerais juste pouvoir la modifier pour qu'il me donne qu'une seul des possibilités sans chercher toutes les autres en sélectionnant les bonnes cellules.
Merci d'avance.
Sub trouve()
Dim bse, lng As Long, x As Long, u As Long, sol As String
Dim i As Long, j As Long
bse = Selection.Value
lng = UBound(bse, 2) - LBound(bse, 2) - 1
u = bse(1, UBound(bse, 2))
For i = 0 To 2 ^ (lng + 1)
x = 0
For j = 0 To lng
If (i \ (2 ^ j)) Mod 2 Then x = x + bse(1, j + 1)
Next j
If x = u Then
sol = u & "="
For j = 0 To lng
If (i \ (2 ^ j)) Mod 2 Then sol = sol & bse(1, j + 1) & "+"
Next j
MsgBox Left$(sol, Len(sol) - 1)
End If
Next i
End Sub
J'ai trouvé un petit programme sur le net qui affiche un message avec toutes les possibilités de termes pour une somme donnée.
J'aimerais juste pouvoir la modifier pour qu'il me donne qu'une seul des possibilités sans chercher toutes les autres en sélectionnant les bonnes cellules.
Merci d'avance.
Sub trouve()
Dim bse, lng As Long, x As Long, u As Long, sol As String
Dim i As Long, j As Long
bse = Selection.Value
lng = UBound(bse, 2) - LBound(bse, 2) - 1
u = bse(1, UBound(bse, 2))
For i = 0 To 2 ^ (lng + 1)
x = 0
For j = 0 To lng
If (i \ (2 ^ j)) Mod 2 Then x = x + bse(1, j + 1)
Next j
If x = u Then
sol = u & "="
For j = 0 To lng
If (i \ (2 ^ j)) Mod 2 Then sol = sol & bse(1, j + 1) & "+"
Next j
MsgBox Left$(sol, Len(sol) - 1)
End If
Next i
End Sub