Solver & VBA

Magic_Doctor

XLDnaute Barbatruc
Bonjour à tous,

Est-il possible d'utiliser le "Solver" au moyen d'une macro ?

Voilà des lustres que j'essaie sans jamais y être arrivé.
Le "Solver" fonctionne parfaitement bien en direct quand on le déclenche à partir de la feuille. En revanche, quand on veut le déclencher au moyen d'une macro, ça ne marche jamais !...
Curieusement quand on enregistre une macro en utilisant le "Solver" en direct, celle-ci s'écrit non pas en anglais mais en espagnol (ma version d'Excel 2007 est en espagnol). J'ai eu beau tenter de retranscrire la macro qui s'était enregistrée en langage VBA (autrement dit en anglais), ça n'a toujours pas marché...

Merci d'avance pour tout commentaire.
 

job75

XLDnaute Barbatruc
Re : Solver & VBA

Bonjour Magic_Doctor,

Je ne comprends pas trop.

Si en A1 => 1 et en A3 => =A1+A2,

l'enregistreur de macro pour Valeur cible avec :

- Cellule à définir : A3

- Valeur à atteindre : 3

- Cellule à modifier : A2

donne bien ce code :

Code:
Sub Macro1()
Range("A3").GoalSeek Goal:=3, ChangingCell:=Range("A2")
End Sub

et la valeur 2 en A2...

Edit : pardon, il s'agit de la macro complémentaire Solver.

J'ai fait un test rapidement, l'enregistreur enregistre bien en anglais (sous Excel 2003).

A+
 
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Re : Solver & VBA

Bonsoir job75,

Et bien moi non plus je ne comprends pas trop...
C'est franchement très curieux !
Je joins un exemple du problème qui me turlupine.
Dans le module de macros se trouvent la macro enregistrée, celle que j'ai tenté de retranscrire, ainsi que la solution que tu m'as proposée.
Sait-on jamais...

Mais merci pour m'avoir répondu.

Buenas noches
 

Pièces jointes

  • Tampon Xylo2bis.zip
    15.2 KB · Affichages: 79
  • Tampon Xylo2bis.zip
    15.2 KB · Affichages: 85
  • Tampon Xylo2bis.zip
    15.2 KB · Affichages: 85

Magic_Doctor

XLDnaute Barbatruc
Re : Solver & VBA

Je viens de faire un essai sur un autre PC où tous les programmes sont en anglais, depuis Vista jusqu'à Office.
J'ai enregistré une macro en faisant un calcul avec le Solveur. La macro s'est bien écrite cette fois-ci en anglais.
Pour vérifier, je déclenche la macro, et apparaît l'infâme message :
"Sub or Function not definied"

Sub Macro1()

SolverOk SetCell:="$E$24", MaxMinVal:=3, ValueOf:="2.5", ByChange:="$E$13"
SolverSolve

End Sub

La première sentence "SolverOk" étant surlignée.

En conséquence ça ne reconnaît plus ce que ça a enregistré...

Je me demande parfois si ce programme est vraiment sérieux...
 

Magic_Doctor

XLDnaute Barbatruc
Re : Solver & VBA

En désespoir de cause, je suis allé sur un forum anglophone, et voilà ce que l'on m'a répondu :

To use Solver in VBA, you need to set a reference:

In the VBE, Tools > References, browse to C:\Program Files\Microsoft Office\OFFICExx\Library\SOLVER, change the file type dropdown to *.xls, *.xla, and pick SOLVER.XLA

Et là, je n'ai absolument rien compris !...
 

Mytå

XLDnaute Occasionnel
Re : Solver & VBA

Salut le forum

Avant de pouvoir utiliser cette fonction, vous devez charger le complément Solveur:

  • Il faut référencer la macro complémentaire "solver" dans ton projet pour que ça fonctionne.
    depuis VBE tu vas dans outils/références.
Le solveur, dans Excel 2007, est une macro complémentaire qui n'est pas installée par défaut.
Pour l'installer :
Bouton Office, Options Excel, Compléments
Vérifie que dans la liste déroulante Gérer (en bas), tu as bien compléments Excel et tu cliques sur Atteindre.
Dans la liste des macros complémentaires, tu coches le complément Solver.

Ensuite tu trouveras le Solver sous l'onglet Données, groupe Analyse, à l'extrême droite du ruban.


Mytå

P.S. Magic-Doctor je t'ai donné la même réponse sur un autre Forum
 
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Re : Solver & VBA

Bonsoir Mytå,

Non pas que je sois têtu ou oligophrénique, si je repose la question, c'est que tout simplement je n'ai pu encore résoudre le problème.
Le solveur fonctionne parfaitement. Il ne s'agit donc pas de comment y avoir accès ou l'activer (incroyable du reste qu'il faille, au travers de méandres absconses, activer un machin qui devrait l'être d'emblée ; enfin passons...).
Le curieux, dans cette histoire, est qu'il est impossible d'enregistrer avec le solveur une macro cohérente qui soit par la suite intelligible pour VBA.
En somme, comment faire en sorte qu'une macro résolve un problème de solveur ??
J'ai laissé un fichier (je pense assez clair) expliquant concrètement les données du problème.

Mais, dans le pire des cas, puisque le solveur ne semble absolument pas destiné aux macros (je signale, du reste, que je ne suis pas le seul qui ait achoppé sur ce p... de solveur, il suffit de jeter un simple coup d'œil sur la BD du forum), le problème se résoudra alors mathématiquement et ciao le solveur !

Merci quand même pour votre intervention.
 

job75

XLDnaute Barbatruc
Re : Solver & VBA

Bonjour Magic_Doctor, Mytå, le forum,

Pour ceci :

Pour vérifier, je déclenche la macro, et apparaît l'infâme message :
"Sub or Function not definied" (...)
La première sentence "SolverOk" étant surlignée.

j'ai écrit au post #3 :

Une précision : pour que cela fonctionne, il faut cocher dans VBA la référence SOLVER (menu Outils-Références)...

Mais avec le fichier que tu as joint, je ne trouve pas cette référence :confused:

A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Solver & VBA

Re,

Avec l'aide d'un fichier vierge, j'ai pu faire apparaître la référence SOLVER sur le tien.

Ci-joint ton fichier complété (du moins chez moi).

A+
 

Pièces jointes

  • Tampon Xylo2bis(1).zip
    15.1 KB · Affichages: 88

Magic_Doctor

XLDnaute Barbatruc
Re : Solver & VBA

Muchas gracias job75 pour l'intérêt que tu as porté sur ce problème.

Le solveur marche très bien, mais il m'est toujours impossible de l'utiliser au moyen d'une macro. Donc j'abandonne cette solution, et, comme je l'évoquais sur mon précédent post, j'ai réglé le problème via les maths. Et maintenant ça marche très bien.
Mais il est vraiment dommage que l'on ne puisse se servir dans une macro de cet outil extraordinairement puissant.

Très bonne fin de journée.
 

pierrejean

XLDnaute Barbatruc
Re : Solver & VBA

Bonjour a tous

Je tiens a confirmer les dires de mon ami Job

Veux-tu tester dans le fichier joint les 2 macros
SolverJob75
SolverJob75_B
 

Pièces jointes

  • Tampon Xylo2bis.zip
    14.7 KB · Affichages: 97
  • Tampon Xylo2bis.zip
    14.7 KB · Affichages: 104
  • Tampon Xylo2bis.zip
    14.7 KB · Affichages: 111

Mytå

XLDnaute Occasionnel
Re : Solver & VBA

Re le forum

Utilise la suite des commandes suivantes :

Alt+F11, ALT+O et ALT+R

Tu devrais voir apparaitre l'écran pour cocher le solver.

152714d1275427289-solver-vba-solveur.jpg


Mytå
 

mécano41

XLDnaute Accro
Re : Solver & VBA

Bonjour,

Pour info., car c'est peut-être un problème similaire : j'avais fait des fichiers avec utilisation du solveur par VBA (je suis encore en EXCEL 2002 ... ), sous XP. Tout fonctionnait très bien. Je suis passé à Windows 7 et j'ai donc réinstallé EXCEL et depuis, cela ne fonctionne plus ; bien que toutes les indications de ressources Solver soient présentes, j'ai le message "Sub ou fonction non défini".

Je n'ai pas trouvé de réponse sur le Web ... je suppose que c'est devenu incompatible ...

Cordialement
 

Mytå

XLDnaute Occasionnel
Re : Solver & VBA

Re le forum

Je suis sous Excel 2003 et 2007, et aucun problème avec le solver, à condition
de l'avoir activé dans les références après avoir créer le code par l'enregistreur
de macro et cela sous Windows Vista ou Windows 7 comme OS.

Mytå
 
Dernière édition:

Discussions similaires

  • Résolu(e)
Microsoft 365 pb formule vba
Réponses
15
Affichages
772

Statistiques des forums

Discussions
312 215
Messages
2 086 333
Membres
103 188
dernier inscrit
evebar