Automatizar la detención del Solver en VBA Excel

didibonf -  
didibonf Mensajes publicados 418 Fecha de registro   Estado Miembro Última intervención   -
Bonjour,

He codificado en VBA para lanzar el solver. Sin embargo, mi macro se interrumpe con el mensaje "Se ha alcanzado el tiempo máximo. ¿Continuar?". Me gustaría automatizar la respuesta: Detener y mantener la solución del solver mientras continúo con mi macro.

¿Puedes ayudarme?

4 respuestas

eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
 
Hola,

Puedes intentar enviar las respuestas correctas al cuadro de diálogo con sendkeys().
eric

edición: si te ayuda, extracto de https://support.microsoft.com/en-us/help/843304 :

La función SolverSolve
La función SolverSolve resuelve el modelo utilizando los parámetros que especificaste con la función SolverOK. La ejecución de la función SolverSolve equivale a hacer clic en resolver en el cuadro de diálogo Parámetros del Solver. Aquí tienes la sintaxis de la función SolverSolve:
SolverSolve(UserFinish, ShowRef)
La siguiente información describe la sintaxis de la función SolverSolve:
? UserFinish indica si deseas que el usuario termine la resolución del modelo.

Para devolver los resultados sin mostrar el cuadro de diálogo de resultados del Solver, establece este argumento en TRUE. Para devolver los resultados y mostrar el cuadro de diálogo Resultados del Solver, asigna a este argumento FALSE
? ShowRef identifica la macro que se llama cuando el Solver de Microsoft Excel devuelve una solución intermedia.

El argumento ShowRef debe usarse solo cuando se pasa el valor TRUE al argumento StepThru de la función SolverOptions.
La función SolverFinish
La función SolverFinish indica qué hacer con los resultados y qué tipo de informe crear después de que el proceso de resolución haya finalizado. Aquí tienes la sintaxis de la función SolverFinish:
SolverFinish (KeepFinal, ReportArray)
La siguiente información describe la sintaxis de la función SolverFinish:
? KeepFinal indica cómo tratar el resultado final. Si KeepFinal es 1, los valores de la solución final se conservan en las celdas variables, reemplazando los valores. Si KeepFinal es 2, los valores de la solución final se ignoran y se restauran los valores anteriores.
? ReportArray especifica un arreglo que indica el tipo de informe que Microsoft Excel crea cuando se alcanza la solución. Si ReportArray se establece en 1, Microsoft Excel crea un informe de respuestas. Si se establece en 2, Microsoft Excel crea un informe sobre el criterio de difusión y si se establece en 3, Microsoft Excel crea un informe de límites. Para más información sobre estos informes, consulta la sección «Cómo generar informes para soluciones».
0
didibonf
 
Mon code est celui-ci
SolverOk SetCell:="$N$204", MaxMinVal:=2, ValueOf:="0", ByChange:="$K$3:$K$202"
SolverSolve True

¿Dónde debo insertar el código y qué debo poner para que detenga el solucionador en lugar de continuar?
0
didibonf Mensajes publicados 418 Fecha de registro   Estado Miembro Última intervención   96
 
¿Nadie puede ayudarme?
0
eriiic Mensajes publicados 24581 Fecha de registro   Estado Colaborador Última intervención   7 281
 
Hola,

Quizás con un archivo de ejemplo será más fácil ayudarte.
pega aquí el enlace proporcionado

eric
0
didibonf Mensajes publicados 418 Fecha de registro   Estado Miembro Última intervención   96
 
Je ne peux pas accéder aux fichiers ou aux liens. Veuillez fournir le texte que vous souhaitez traduire.
0