Appel du solveur Excel depuis une macro personnelle

Signaler
Messages postés
3
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
29 janvier 2009
-
Messages postés
3
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
29 janvier 2009
-
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

Messages postés
3
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
28 janvier 2009

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
Messages postés
3
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
29 janvier 2009

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
Messages postés
3
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
28 janvier 2009

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
Messages postés
3
Date d'inscription
mercredi 28 janvier 2009
Statut
Membre
Dernière intervention
29 janvier 2009

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