Appel du solveur Excel depuis une macro personnelle

maeckma Messages postés 3 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009 - 28 janv. 2009 à 10:03
maeckma Messages postés 3 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009 - 29 janv. 2009 à 09:24
Bonjour,

Est-il possible de faire appel au solveur Excel depuis une macro personnelle ?

Lorsque j'enregistre cette opération il vient:
Sub Macro1()
    SolverOk SetCell:="$I$8", MaxMinVal:=2, ValueOf:="0", ByChange:="$I$4:$I$6"
    SolverSolve
End Sub

Les paramètres sont corrects mais l'exécution s'arrête sur SolverOk avec le message d'erreur:
Erreur de compilation
Sub ou Function non définie.

Merci de bien vouloir consacrer un peu de temps à ma demande.
Maurice Maeck

4 réponses

cs_fondue Messages postés 3 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 28 janvier 2009
28 janv. 2009 à 14:13
Bonjour Maurice,

La fonction solveur n'est sans doute pas activée dans microsoft visual basic.
Dans le menu Outils/Références vérifie que solver.xls est bien coché.
Cela devrait résoudre le problème.

Meilleures salutations

Marc
0
maeckma Messages postés 3 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
28 janv. 2009 à 14:43
Effectivement Marc,

J'ignorais qu'il fallait activer cette sorte de lien.

La macro s'exécute bien ... mais s'arrête après chaque appel du solveur en me demandant si je garde la solution ou si je restaure les paramètres d'origine et je dois appuyer sur ENTER pour continuer. Comme la solution sera bonne à chaque coup (car l'initialisation est excellente) et que je souhaite exécuter une longue boucle (peut-être i=1 à i=10000), cette interruption de la macro est désagréable (surtout pour la touche de clavier concernée !).

Existe-t-il une manière d'inhiber cet arrêt de la macro ? Je n'ai rien trouvé dans les options du solveur.

Avec un grand merci pour l'aide.
Maurice
0
cs_fondue Messages postés 3 Date d'inscription vendredi 9 janvier 2009 Statut Membre Dernière intervention 28 janvier 2009
28 janv. 2009 à 17:44
En rajoutant True après SolverSolve, cette dernière fenêtre n'apparaît pas. Ton clavier et ton index t'en seront sûrement dix mille fois reconnaissant...

Sub Macro1()
    SolverOk SetCell:="$I$8", MaxMinVal:=2, ValueOf:="0", ByChange:="$I$4:$I$6"
    SolverSolve True
End Sub

Bonne soirée
Marc
0
maeckma Messages postés 3 Date d'inscription mercredi 28 janvier 2009 Statut Membre Dernière intervention 29 janvier 2009
29 janv. 2009 à 09:24
Quel bonheur de voir défiler les itérations en gardant mes doigts bien au calme. Il me reste à essayer de comprendre l'action de True.

Avec toute la reconnaissance de mon clavier et de mes tendons.
Bien à toi.
Maurice
0
Rejoignez-nous