Excell 2007 Appel solveur dans macro

Fermé
Zazou - 20 janv. 2011 à 20:23
 Zazou - 23 janv. 2011 à 10:12
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
A voir également:

7 réponses

Le Pingou Messages postés 12222 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 3 décembre 2024 1 452
20 janv. 2011 à 22:03
Bonjour,
Pouvez-vous mettre votre fichier sur https://www.cjoint.com/ et poster le lien?
0
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 7 244
20 janv. 2011 à 22:23
Bonsoir,

et [ici https://support.microsoft.com/en-us/help/843304] une aide sur le solver en vba.
eric
0
Merci, je vais plancher dessus ce weekend !
0
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
0
Voici le lien sur lequel se trouve mon fichier : https://www.cjoint.com/?0bvaHVXBDhw
0
Le Pingou Messages postés 12222 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 3 décembre 2024 1 452
21 janv. 2011 à 14:34
Bonjour,
Il serait bien d'avoir la macro que vous avez enregistrée!
Salutations.
Le Pingou
0
Quand j'ouvre le fichier la macro y est, je ne comprends pas.
0
Le Pingou Messages postés 12222 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 3 décembre 2024 1 452
21 janv. 2011 à 22:34
Bonjour,
Ma proposition voir feuille [Test] : https://www.cjoint.com/?3bvwHPwO4a8
Merci de votre réponse.
0
Bonjour,
Je vous remercie tout d'abord de vous être penché sur mon problème. Cependant, je n'arrive pas à ouvrir le fichier se trouvant sur ce lien. Désole pour mon incompétence répétée...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12222 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 3 décembre 2024 1 452
22 janv. 2011 à 17:14
Bonjour,
La macro est fausse.
Avez-vous essayé ma proposition ...Oui / Non !
Au cas ou voici le fichier ZIP : https://www.cjoint.com/?3bwrouElJeR
0
Bonjour,

J'ai réussi à ouvrir le fichier. Cela fonctionne mais il faudrait qu'en un seul clic j'optimise tous les mois. C'est déjà bien, merci pour tout ce travail.
0
Pourriez-vous me dire pourquoi ma macro ne fonctionne pas ?
Merci encore
0
Le Pingou Messages postés 12222 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 3 décembre 2024 1 452
22 janv. 2011 à 22:37
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 ... ?
0
Le Pingou Messages postés 12222 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 3 décembre 2024 1 452
22 janv. 2011 à 23:13
Bonsoir,
J'ai de l'avance, ma proposition : https://www.cjoint.com/?3bwxmJvlgP4
0
Merci beaucoup, c'est exactement ce qu'il me fallait !
0