Excell 2007 Appel solveur dans macro

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

7 réponses

  1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Pouvez-vous mettre votre fichier sur https://www.cjoint.com/ et poster le lien?
    0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    et [ici https://support.microsoft.com/en-us/help/843304] une aide sur le solver en vba.
    eric
    0
    1. Zazou
       
      Merci, je vais plancher dessus ce weekend !
      0
    2. Zazou
       
      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
  3. Zazou
     
    Voici le lien sur lequel se trouve mon fichier : https://www.cjoint.com/?0bvaHVXBDhw
    0
    1. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
       
      Bonjour,
      Il serait bien d'avoir la macro que vous avez enregistrée!
      Salutations.
      Le Pingou
      0
    2. Zazou
       
      Quand j'ouvre le fichier la macro y est, je ne comprends pas.
      0
  4. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonjour,
    Ma proposition voir feuille [Test] : https://www.cjoint.com/?3bvwHPwO4a8
    Merci de votre réponse.
    0
    1. Zazou
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    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
    1. Zazou
       
      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
    2. Zazou
       
      Pourriez-vous me dire pourquoi ma macro ne fonctionne pas ?
      Merci encore
      0
  7. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    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
  8. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     
    Bonsoir,
    J'ai de l'avance, ma proposition : https://www.cjoint.com/?3bwxmJvlgP4
    0
    1. Zazou
       
      Merci beaucoup, c'est exactement ce qu'il me fallait !
      0