[VBA EXCEL] Automatiser l'arrêt du solver

Fermé
didibonf - Modifié par didibonf le 26/05/2011 à 09:56
didibonf Messages postés 419 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 21 mai 2019 - 1 juin 2011 à 11:02
Bonjour,

J'ai codé sur VBA pour lancer le solver. Cependant ma macros est interrompu par le message 'Le temps maximum est atteint. Continuer?'. J'aimerai automatiser la réponse : Arrêter puis garder la solution du solver tout en continuant ma macro.

Pouvez-vous m'aider?

4 réponses

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
Modifié par eriiic le 26/05/2011 à 10:37
Bonjour,

Tu peux essayer d'envoyer les bonnes réponses à la boite de dialogue avec sendkeys().
eric

edit: si ça peut t'aider, extrait de https://support.microsoft.com/en-us/help/843304 :

La fonction SolverSolve
La fonction SolverSolve résout le modèle à l'aide des paramètres que vous avez spécifié avec la fonction SolverOK . L'exécution de la fonction SolverSolve revient à cliquer sur résoudre dans la boîte de dialogue Paramètres du Solveur . Voici la syntaxe de la fonction SolverSolve :
SolverSolve(UserFinish, ShowRef)
Les informations suivantes décrivent la syntaxe de la fonction SolverSolve :
? UserFinish indique si vous souhaitez que l'utilisateur de fin de la résolution du modèle.

Pour renvoyer les résultats sans afficher le Solveur résultats dialogue zone, définissez cet argument sur TRUE. Pour renvoyer les résultats et afficher la boîte de dialogue Résultat du Solveur , affectez à cet argument FALSE
? ShowRef identifie la macro qui est appelée lorsque le Solveur de Microsoft Excel renvoie une solution intermédiaire.

L'argument ShowRef doit être utilisé uniquement lorsque la valeur TRUE est transmise à l'argument StepThru de la fonction SolverOptions .
La fonction SolverFinish
La fonction SolverFinish indique que faire avec les résultats et quel type de rapport pour créer après que le processus de résolution terminé. Voici la syntaxe de la fonction SolverFinish :
SolverFinish (KeepFinal, ReportArray)
Les informations suivantes décrivent la syntaxe de la fonction SolverFinish :
? KeepFinal indique comment traiter le résultat final. Si KeepFinal est 1, les valeurs de la solution finale sont conservées dans les cellules variables, remplacer les valeurs. Si KeepFinal est 2, les valeurs de la solution finale sont ignorées et les valeurs précédentes sont restaurés.
? ReportArray spécifie un tableau qui indique le type de rapport que Microsoft Excel crée lorsque la solution est atteinte. Si ReportArray est définie sur 1, Microsoft Excel crée un rapport de réponses. Si définie sur 2, Microsoft Excel crée un rapport sur critère de diffusion et Si défini à 3 Microsoft Excel crée un rapport des limites. Pour plus d'informations sur ces rapports, voir la section « How to generate reports for solutions ».
0
Mon code est celui-ci
SolverOk SetCell:="$N$204", MaxMinVal:=2, ValueOf:="0", ByChange:="$K$3:$K$202"
SolverSolve True

Où doi-je insérer le code et que doi-je mettre pour qu'il arrête le solveur plutot que de continuer?
0
didibonf Messages postés 419 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 21 mai 2019 95
31 mai 2011 à 08:32
Personne ne peut m'aider?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 209
31 mai 2011 à 10:14
Bonjour,

Peut-être qu'avec un fichier exemple ça sera plus facile de t'aider.
cijoint.fr et coller ici le lien fourni

eric
0
didibonf Messages postés 419 Date d'inscription vendredi 18 juillet 2008 Statut Membre Dernière intervention 21 mai 2019 95
1 juin 2011 à 11:02
http://www.cijoint.fr/cjlink.php?file=cj201105/cijWKopPrK.xls
0