Déclaration de plage - Solveur Excel
Bonjour,
Après avoir longuement écumé tous les forums en quête d'une réponse, j'ai finalement compris que j'allais devoir m'adresser directement à la communauté
J'explique mon problème. Je cherche à créer un solveur qui modifierai mes rangées de cellules variables en fonction de plusieurs contraintes. Jusque là pas de souci, quand je le fais manuellement, tout fonctionne parfaitement. Maintenant je voudrais coder ce solveur en vba. J'ai triché un peu en utilisant l'enregistrement de macro. Là pareil tout fonctionne.
Ensuite, je souhaite pouvoir être capable de modifier mes variables et autres cellules de contraintes. J'utilise donc Application.Inputbox. Et c'est là que ça ne fonctionne plus. Je vous mets en dessous une version très simplifié du solveur :
Sub test()
' test Macro
Dim ONE As Range, TWO As Range, THREE As Range,
Set ONE = Application.InputBox(prompt:="Selectionner la plage x", Type:=8)
Set TWO = Application.InputBox(prompt:="Selectionner la plage y", Type:=8)
Set THREE = Application.InputBox(prompt:="Selectionner la cellule z", Type:=8)
SolverReset
SolverOk SetCell:="THREE", MaxMinVal:=2, ValueOf:=0, ByChange:= _
"ONE, TWO", Engine:=1, EngineDesc:="GRG Nonlinear"
SolverSolve
End SubQuand je déclenche la macro, ça me demande bien de renseigner toutes mes plages et la macro tourne sans souci. Cependant, à la fin la boite de dialogue du solveur apparaît et m'affiche ceci :
"Erreur dans le modèle. Vérifiez que toutes les cellules et les contraintes sont valides".
J'en déduis donc que mon problème vient de mes déclarations de variables. Est-ce que vous auriez un conseil voire une solution à me proposer ?
Merci d'avance,
JJW
Bonjour,
Il te faut sortir tes variables (elles ne doivent pas être entre guillemets) un peu comme ça :
SolverOk SetCell:=THREE, MaxMinVal:=2, ValueOf:=0, ByChange:=ONE & "," & TWO, Engine:=1, EngineDesc:="GRG Nonlinear"Bonjour,
Merci beaucoup pour votre réponse.
Malheureusement quand je fais ça, il inscrit dans chacune de mes plages définies, les plages de mes variables (du genre AH:AI;AF:AN).
Je dois avouer que je ne sais vraiment plus comment faire...
Je me permets de répondre à mon propre message, parce que j'ai trouvé une solution et que ça pourrait peut-être aider d'autre personne :
SolverOk SetCell:=THREE.Address, MaxMinVal:=2, ValueOf:=0, ByChange:= Range(ONE & "," &TWO), Engine:=1, EngineDesc:="GRG Nonlinear"Merci encore !
JJW