Yop, j'ai un petit problème VBA sur Excel que je n'arrive pas à régler, je viens donc vous demander conseil ;O !
J'ai un tableau comme ça. J'fais une boucle contenant un solveur sur VBA avec pour but de minimiser la variance, avec comme contraintes que le rendement attendu = le rendement requis pour chaque ligne, que la somme des pondération de chaque titre = 1, et que chaque titre est une valeur >= 0
Les formules du total des pondération, de la variance et du rendement attendu sont toutes les trois correctes, et tirées sur leurs colonnes respectives avec le numéro de ligne laissé flottant
Le code de ma boucle est le suivant: (j'fais varier la ligne pour qu'il aille à la suivante à chaque fois + j'ai rajouté après le solveur un truc pour copier la valeur de la variance dans la case d'à côté pour la conserver après chaque boucle)
For Ligne = 3 To 10
SolverOk SetCell:="$J" & Ligne, MaxMinVal:=2, ValueOf:="0", ByChange:="$B & Ligne:$F & Ligne"
SolverAdd CellRef:="$I" & Ligne, Relation:=2, FormulaText:="$H" & Ligne
SolverOk SetCell:="$J" & Ligne, MaxMinVal:=2, ValueOf:="0", ByChange:="$B & Ligne:$F & Ligne"
SolverAdd CellRef:="$B & Ligne:$G & Ligne", Relation:=3, FormulaText:="0"
SolverOk SetCell:="$J" & Ligne, MaxMinVal:=2, ValueOf:="0", ByChange:="$B & Ligne:$F & Ligne"
SolverAdd CellRef:="$G" & Ligne, Relation:=2, FormulaText:="1"
SolverOk SetCell:="$J" & Ligne, MaxMinVal:=2, ValueOf:="0", ByChange:="$B & Ligne:$F & Ligne"
SolverSolve userFinish:=True 'pour virer la box du solveur
Range("$J" & Ligne).Select
Selection.Copy
Range("$K" & Ligne).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next Ligne
J'ai commencé par enregistrer une macro résolvant le solveur pour la première ligne, et ensuite j'ai inséré la formule VBA au sein d’une boucle For, faisant répéter le solveur à chaque fois pour la ligne suivante.
Problème, les variances des lignes suivantes ne s’inscrivent pas comme je le souhaite, et le solveur ne fonctionne pas pour les lignes suivantes. De plus, chaque boucle du solveur me « pollue » les contraintes du solveur en conservant les anciennes et en les réécrivant pour chaque ligne.
Need help !