Excell 2007 Appel solveur dans macro
Zazou
-
Zazou -
Zazou -
Bonjour,
Je cherche à me servir du solveur à partir d'une macro. J'ai plusieurs cellules à optimiser et je voudrais le faire en un clic grâce à une macro.
Avec l'enregistreur de macro, j'arrive à faire une macro qui optimise une seule cellule.
Le problème et que j'enregistre mes données dans le solveur avec les coordonnées de
La première cellule à minimiser est B17 (j'ai entré une fonction objectif)
Les cellules variables sont B15 et B16
Et les contraintes sont B15<=3
B15 = entier
B15 >= 1
B16 <= 10
B16 = entier
B16 >= 7
B17 >= 0
La deuxième cellule à minimiser est D17
Les cellules variables et les contraintes sont similaire en changeant B en D.
Et ainsi de suite avec F17, H17, J17... , 12 cellules en tout.
J'ai essayé de changer tous les B en D dans la macro enregistrée et évidemment ça ne fonctionne pas.
SolverOk SetCell:="$B$17", MaxMinVal:=2, ValueOf:="0", ByChange:="$B$15:$B$16"
SolverSolve
Je ne comprends pas où sont exprimées les contraintes dans les lignes ci-dessus et je ne comprends pas les expressions : ValueOf:="0" et MaxMinVal:=2.
Pourriez-vous m'aider ?
Merci beaucoup
Je cherche à me servir du solveur à partir d'une macro. J'ai plusieurs cellules à optimiser et je voudrais le faire en un clic grâce à une macro.
Avec l'enregistreur de macro, j'arrive à faire une macro qui optimise une seule cellule.
Le problème et que j'enregistre mes données dans le solveur avec les coordonnées de
La première cellule à minimiser est B17 (j'ai entré une fonction objectif)
Les cellules variables sont B15 et B16
Et les contraintes sont B15<=3
B15 = entier
B15 >= 1
B16 <= 10
B16 = entier
B16 >= 7
B17 >= 0
La deuxième cellule à minimiser est D17
Les cellules variables et les contraintes sont similaire en changeant B en D.
Et ainsi de suite avec F17, H17, J17... , 12 cellules en tout.
J'ai essayé de changer tous les B en D dans la macro enregistrée et évidemment ça ne fonctionne pas.
SolverOk SetCell:="$B$17", MaxMinVal:=2, ValueOf:="0", ByChange:="$B$15:$B$16"
SolverSolve
Je ne comprends pas où sont exprimées les contraintes dans les lignes ci-dessus et je ne comprends pas les expressions : ValueOf:="0" et MaxMinVal:=2.
Pourriez-vous m'aider ?
Merci beaucoup
A voir également:
- Excell 2007 Appel solveur dans macro
- Save as pdf office 2007 - Télécharger - Bureautique
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appel privé - Guide
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
7 réponses
Bonsoir,
et [ici https://support.microsoft.com/en-us/help/843304] une aide sur le solver en vba.
eric
et [ici https://support.microsoft.com/en-us/help/843304] une aide sur le solver en vba.
eric
Grâce à ton aide, j'ai pu écrire cette macro. Il n'y a apparemment pas d'erreur mais ça n'optimise rien. En gros, je cherche à minimiser le reste (B17) de la division euclidienne de B12 par B15 en faisant varier B15 et B16. Dans la cellule B17, la formule est donc =B15*B16-B12
Une idée sur mon erreur ?
Voici la macro :
Sub Macro1()
Solverok setcell:="$B$17", maxminval:=2, bychange:="$B$15:$B$16"
SolverAdd CellRef:="$B$15", Relation:=1, FormulaText:=3
SolverAdd CellRef:="$B$15", Relation:=2, FormulaText:=entier
SolverAdd CellRef:="$B$15", Relation:=3, FormulaText:=1
SolverAdd CellRef:="$B$16", Relation:=1, FormulaText:=10
SolverAdd CellRef:="$B$16", Relation:=2, FormulaText:=entier
SolverAdd CellRef:="$B$16", Relation:=3, FormulaText:=7
SolverAdd CellRef:="$B$17", Relation:=3, FormulaText:=0
SolverSolve
End Sub
Une idée sur mon erreur ?
Voici la macro :
Sub Macro1()
Solverok setcell:="$B$17", maxminval:=2, bychange:="$B$15:$B$16"
SolverAdd CellRef:="$B$15", Relation:=1, FormulaText:=3
SolverAdd CellRef:="$B$15", Relation:=2, FormulaText:=entier
SolverAdd CellRef:="$B$15", Relation:=3, FormulaText:=1
SolverAdd CellRef:="$B$16", Relation:=1, FormulaText:=10
SolverAdd CellRef:="$B$16", Relation:=2, FormulaText:=entier
SolverAdd CellRef:="$B$16", Relation:=3, FormulaText:=7
SolverAdd CellRef:="$B$17", Relation:=3, FormulaText:=0
SolverSolve
End Sub
Bonjour,
Ma proposition voir feuille [Test] : https://www.cjoint.com/?3bvwHPwO4a8
Merci de votre réponse.
Ma proposition voir feuille [Test] : https://www.cjoint.com/?3bvwHPwO4a8
Merci de votre réponse.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
La macro est fausse.
Avez-vous essayé ma proposition ...Oui / Non !
Au cas ou voici le fichier ZIP : https://www.cjoint.com/?3bwrouElJeR
La macro est fausse.
Avez-vous essayé ma proposition ...Oui / Non !
Au cas ou voici le fichier ZIP : https://www.cjoint.com/?3bwrouElJeR
Bonsoir,
Concernant votre macro, certaine référence des [Relation :=] sont fausses.
Vous pouvez voir ma procédure et comparer les valeurs y relatives.
Concernant : un seul clic j'optimise tous les mois ....
.- Les douze mois de l'année ... Oui / Non ?
.- Même disposition que votre exemple ... Oui / Non ... ?
Concernant votre macro, certaine référence des [Relation :=] sont fausses.
Vous pouvez voir ma procédure et comparer les valeurs y relatives.
Concernant : un seul clic j'optimise tous les mois ....
.- Les douze mois de l'année ... Oui / Non ?
.- Même disposition que votre exemple ... Oui / Non ... ?