Bonjour, salut xorsankukai,
C'est réalisable en utilisant le solveur Excel. C'est un complément Excel qu'il faut charger, et également activer les références dans VBA au préalable (suivre les instructions : http://cooking-excel.com/2015/11/utiliser-le-solveur-dans-un-programme-vba/)
Voilà le code que j'ai crée :
Sub Optimisation()
'Necessite de charger le solveur Excel
On Error GoTo Fin
SolverReset
SolverOk SetCell:="$B$13", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$2:$B$8", Engine:=2, EngineDesc:="Simplex LP"
SolverAdd CellRef:="$B$2:$B$8", Relation:=4, FormulaText:="entier" 'Qte = nombre entier
SolverAdd CellRef:="$B$2:$B$8", Relation:=3, FormulaText:="0" 'Qte obligatoirement positive ou nulle
SolverAdd CellRef:="$B$13", Relation:=3, FormulaText:="0" 'Longeur totale obligatoirement inférieure ou égale à longeur souhaitée
SolverSolve
Exit Sub
Fin:
MsgBox "Echec de l'optimisation. Vérifiez que le Solveur Excel est bien chargé."
End Sub
Le fichier complet :
PS : ici j'ai utilisé une macro pour faciliter le lancement, mais on peut tout à fait n'utiliser que l'utilitaire du solveur.