Je voudrais ajouter des contraintes de facon automatique dans le solver. J'ai un nombre n de variable et pour chaque variable j'ai besoin d'une borne min et d'une borne max.

Voici le code que j'ai ecrit. Dans mon exemple le nombre de variable est fixee a 20. Le probleme est dans la boucle for. Les contraintes ne sont pas prises en compte.

Merci pour votre aide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub Macro12()
'
' Macro12 Macro
'
nbrassets = 20
 
'
    SolverReset
    SolverOk SetCell:="$B$38", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$2:$~nbrasset+1$2", _
        Engine:=1, EngineDesc:="GRG Nonlinear"
     '----------------------------------------------------------------------------------------------------------------------------
        For j = 4 To nbrassets + 4 Step 1
 
    SolverAdd CellRef:="$~j$39", Relation:=1, FormulaText:="$~j$41"
 
    SolverAdd CellRef:="$~j$39", Relation:=3, FormulaText:="$~j$40"
 
    Next j
     '----------------------------------------------------------------------------------------------------------------------------
    SolverAdd CellRef:="$X$39", Relation:=2, FormulaText:="1"
    SolverOk SetCell:="$B$38", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$2:$U$2", _
        Engine:=1, EngineDesc:="GRG Nonlinear"
    SolverOk SetCell:="$B$38", MaxMinVal:=2, ValueOf:=0, ByChange:="$B$2:$U$2", _
        Engine:=1, EngineDesc:="GRG Nonlinear"
    SolverSolve
 
End Sub