Bonsoir à tous,
je m'essaye au codage d'un solveur dans une macro vba, que j'introduis dans une boucle. Le but étant de maximiser une valeur en respectant certaine condition et selon certaine valeur et de reporter les résultats obtenus pour chacune de ces valeurs dan s une autre feuille. Cependant, les valeurs sont toutes identiques et ne correspondent pas à ce que je voudrais obtenir.
J'ai donc le programme ci dessous:

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
28
29
'activation de la feuille "optimisation"
wsOpt.Activate
'initialisation des parts actives à 0
Range("parts_actives").Value = 0
 
'mise en mémoire du programme d'optimisation du portefeuille benchmarké
solverreset
solverok setcell:="Er_actif", MaxMinVal:=1, bychange:="parts_actives"
solveradd cellref:="TE", Relation:=2, formulatext:="=TE_cible"
solveroptions assumenonneg:=True
solveradd cellref:="invOpt", Relation:=2, formulatext:=1
solveroptions assumenonneg:=False
 
'initialisation à 1 du compteur i (de la ligne utilisée sur la feuille frontière
i = 1
'boucle sur la TE (max) de 0 à 10% avec un pas de 1%
For j = 0 To 10
    'report de la TE max sur le modèle Excel
    wsOpt.Range("TE_cible").Value = j / 100
    'optimisation
    solversolve userfinish:=True
    'incrémentation de la ligne de report
    i = i + 1
    'report de la TE (max), de la volatilité et du rendement moyen du portefeuille
    wsF.Cells(i, 1).Value = wsOpt.Range("TE_cible").Value
    wsF.Cells(i, 2).Value = wsOpt.Range("stDevOpt").Value
    wsF.Cells(i, 3).Value = wsOpt.Range("Er_actif").Value
    'fin de la boucle
Next


J'aimerais donc savoir pourquoi la boucle ne fonctionne pas. Toute aide ou remarque est la bienvenue et appréciée!

Cordialement,
Rougiel