Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Solveur VBA contraintes

  • Initiateur de la discussion Initiateur de la discussion Brut25
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 😀

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:
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…