Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
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.
 
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:
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

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...
 
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 !...
 
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:
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.
 
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 😕

A+
 
Dernière édition:
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.
 
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å
 
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
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
2 K
Retour