Mucho te agradecería si pudieras resolver una pequeña función que no consigo que me funcione, se trata de insertar un botón en una hoja que, a través de una macro, ejecute la función solver.
1 respuesta
Respuesta de fejoal
1
1
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
Supongo que sabrás que la función Solver es en sí toda una macro convertida a complemento. Por lo tanto, no seré tan pretencioso de reproducirla, pues -además- ya está resuelta. Ahora bien si lo que necesitas es una macro asociada a un botón que la invoque, para evitar usar los simples comandos de "Herramientas" | "Solver" (ahorrarías apenas un click) El siguiente procedimiento te puede ayudar: Activa el editor de Visual Basic (presiona Alt+F11), inserta un nuevo módulo ("Insertar", "´Modulo") y pega el siguiente código: Sub LanzaSolver() Application. SendKeys "%H" Application. SendKeys "v" End Sub Cierra el editor de Visual Basic Una vez terminada la macro en el archivo, muestra la barra de herramientas de "Formularios" ("Ver" | "Barras de herramientas" | "Formularios". De ella, toma el icono de "botón" y dibújalo en tu hoja. Al haber presionado el icono, el cursor del mouse se transformará en una cruz fina. Mantén presionado el botón derecho y arrástralo hasta donde desees dibujando el botón. Cuando sueltes la tecla, automáticamente aparecerá la lista de macros disponibles de dónde podrás seleccionar el que quieres asociar (LanzaSolver, en este caso). Simplemente, dale doble click. También, puedes cambiar la vinculación de un botón con una macro, dando click derecho sobre él y eligiendo "Asignar macro". Otra vez, la lista de macros disponibles te permitirá realizar tal asignación. No estoy muy seguro si es lo que buscas, pero cualquier cosa más allá de esto sería replicar la mascar de entrada del Solver.
Estimado Fernando, muchas gracias por tu respuesta, he aplicado la solución que me has dado y el botón funciona correctamente. De nuevo te molesto, ahora es para ver si puedo mejorar la función, al pulsar el botón asociado a Solver aparece la ventana "Parámetros de Solver", y al pulsar el botón "Resolver" de la ventana indicada, aparece la ventana "Resultados de Solver" en la que hay que pulsar el botón "Aceptar". My pregunta es: "es posible que la función Solver se resuelva directamente, sin que aparezcan las ventanas indicadas?" De nuevo muchas gracias por tu atención. Un abrazo
Sobre la base del macro anterior, el siguiente efectúa todo el proceso, supuesto que parámetros y condiciones estén cargadas en la pantalla de "Parámetros": Sub LanzaSolver() Application.ScreenUpdating = False Application.SendKeys "%H" Application.SendKeys "v" Application.SendKeys "%s", True Application.SendKeys "{TAB}" Application.SendKeys "{ENTER}" Application.ScreenUpdating = True End Sub Completa el proceso sin mostrar pantallas.