Solveur VBA contraintes

Brut25

XLDnaute Nouveau
Bonjour tout le monde,
Je m'adresse à vous car j'ai un gros problème quand je procède au solveur par VBA

Je dois en minimisant un risque(1), faire varier 4 cases (2) tout en gardant le total de ces cases égale à 1 (3) avec la contrainte qu'une moyenne soit égale à une moyenne cible (4) sachant que ces 4 dernières cases doivent être supérieur ou égale à 0

J'espère que je ne vous embrouille pas, voyez l'image jointe :D

Le problème c'est que tout marche bien, je dois refaire le solveur plusieurs fois selon plusieurs cases Q44 Q45 Q46 , à chaque fois L38 change selon ces cases et des colonnes se remplissent, tout va bien, mais il suffit que j'opte pour une macro, j'enregistre ce que je fais en macro, et quand j'ordonne à partir d'un bouton tout marche bien sauf que la condition L38=Q44 n'est plus respecté par le solveur VBA .. du coup j'ai la même chose dans toutes les colonnes

Merci à vous.



Voila pour mon code qui est refait 8 fois (8macro) pour Q44 Q45 Q46 Q47 ............... dans la onzième ligne, seul Q44 change mais le solveur ne considère même pas la contrainte, et m'affiche Q44 dans 8colonnes même si chacun des 8 codes a une cellule

Sub SOLVEURNEW1()

SolverOk SetCell:="$L$39", MaxMinVal:=2, ValueOf:=0, ByChange:="$O$8:$O$12", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$O$8", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$O$9", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$O$10", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$O$11", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$O$12", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$O$13", Relation:=2, FormulaText:="1"
SolverOk SetCell:="$L$39", MaxMinVal:=2, ValueOf:=0, ByChange:="$O$8:$O$12", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$L$38", Relation:=2, FormulaText:="$Q$44"""
SolverOk SetCell:="$L$39", MaxMinVal:=2, ValueOf:=0, ByChange:="$O$8:$O$12", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverOk SetCell:="$L$39", MaxMinVal:=2, ValueOf:=0, ByChange:="$O$8:$O$12", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve True
End Sub
 
Dernière édition:

mécano41

XLDnaute Accro
Re : Solveur VBA contraintes

Bonjour,

Sans fichier...pas facile...

Essaie ainsi :

Code:
Option Explicit

Sub Principal()
' bla bla...
Call Resolution("$Q$44")
' bla bla...
' bla bla...
Call Resolution("$Q$45")
' ETC...
' bla bla...
End Sub

Sub Resolution(AdCell As String)
SolverReset
SolverOk SetCell:="$L$39", MaxMinVal:=2, ValueOf:=0, ByChange:="$O$8:$O$12", Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$O$8", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$O$9", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$O$10", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$O$11", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$O$12", Relation:=3, FormulaText:="0"
SolverAdd CellRef:="$O$13", Relation:=2, FormulaText:="1"
SolverAdd CellRef:="$L$38", Relation:=2, FormulaText:=AdCell
SolverSolve True
End Sub

Cordialement
 
Dernière édition:

Statistiques des forums

Discussions
311 733
Messages
2 082 009
Membres
101 865
dernier inscrit
MLL