Solucionador de VBA

Este tutorial le mostrará cómo usar el complemento Solver en VBA.

Solver es un complemento que se proporciona con Excel y se utiliza para realizar análisis de "qué pasaría si" proporcionando respuestas alternativas a una fórmula en una celda en función de los valores que puede pasar a la fórmula desde otras celdas de su libro de trabajo.

Habilitar el complemento Solver en Excel

Selecciona el Expediente en la cinta de Excel y luego baje a Opciones.

Seleccione Complementos y haga clic en el Ir junto a Complementos de Excel.

Asegúrate que Complemento Solver está seleccionada la opción.

Alternativamente, haga clic en el Complementos de Excel sobre el Desarrollador cinta para obtener el cuadro de diálogo Complementos.

Habilitación del complemento Solver en VBA

Una vez que haya habilitado el complemento Solver en Excel, deberá agregar una referencia a él en su proyecto VBA para poder usarlo en VBA.

Asegúrese de hacer clic en el proyecto VBA donde desea usar el Solver. Clickea en el Menú de herramientas y luego en Referencias.

Una referencia a la Complemento Solver se agregará a su proyecto.

¡Ahora puede usar el complemento Solver en el código VBA!

Usando funciones de Solver en VBA

Necesitamos usar 3 funciones de Solver VBA para usar Solver en VBA. Estos son SolverOK, SolverAdd, y SolverSolve.

SolverOK

  • SetCell - Opcional - esto debe hacer referencia a la celda que debe cambiarse - debe contener una fórmula. Esto corresponde a laEstablecer celda objetivo caja en elParámetros del solucionador caja de diálogo.
  • MaxMinVal - Opcional - Puede configurarlo en 1 (Maximizar), 2 (Minimizar) o 3. Esto corresponde a la Max, Min, yValor opciones en elParámetros del solucionador caja de diálogo.
  • Valor de - Opcional -Si MaxMinValue se establece en 3, entonces debe proporcionar este argumento.
  • Por el cambio - Opcional -Esto le dice al solucionador qué celdas puede cambiar para obtener el valor requerido. Esto corresponde a laCambiando celdas variables caja en elParámetros del solucionador caja de diálogo.
  • Motor - Opcional : indica el método de resolución que se debe utilizar para llegar a una solución. 1 para el método Simplex LP, 2 para el método GRG no lineal o 3 para el método evolutivo. Esto corresponde a laSeleccione un método de resolución lista desplegable en elParámetros del solucionador caja de diálogo
  • EngineDesc - Opcional -esta es una forma alternativa de seleccionar el método de resolución - aquí debe escribir las cadenas "Simplex LP", "GRG Nonlinear" o "Evolutionary". Esto también corresponde a laSeleccione un método de resolución lista desplegable en elParámetros del solucionador caja de diálogo

SolverAdd

  • CellRef - requerido - esta es una referencia a una celda o un rango de celdas que deben cambiarse para resolver el problema.
  • Relación - requerido - este es un número entero que debe estar entre 1 y 6 y especifica la relación lógica permitida.
    • 1 es menor que (<=)
    • 2 es igual a (=)
    • 3 es mayor que (> =)
    • 4 debe tener valores finales que sean enteros.
    • 5 debe tener valores entre 0 o 1.
    • 6 debe tener valores finales que sean todos diferentes y enteros.
  • FormulaText - Opcional - El lado derecho de la restricción.

Creación de un ejemplo de solucionador

Considere la siguiente hoja de trabajo.

En la hoja anterior, necesitamos alcanzar el punto de equilibrio en el mes número uno estableciendo la celda B14 en cero modificando los criterios en las celdas F1 a F6.

123 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"End Sub

Una vez que haya configurado los parámetros de SolverOK, debe agregar algunas restricciones de criterios.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"'agregar criterios - F3 no puede ser menor que 8SolverAdd CellRef: = "$ F $ 3", Relación: = 3, FormulaText: = "8"'agregar criterios - F3 no puede ser menor que 5000SolverAdd CellRef: = "$ F $ 5", Relación: = 3, FormulaText: = "5000"End Sub

Una vez que haya configurado SolverOK y SolverAdd (si es necesario), puede resolver el problema.

1234567 Sub TestSolverSolverOk SetCell: = "$ B $ 14", MaxMinVal: = 3, ValueOf: = 0, ByChange: = "$ F $ 2: $ F $ 6", Engine: = 1, EngineDesc: = "GRG Nonlinear"'agregar criterios - F3 no puede ser menor que 8 SolverAdd CellRef: = "$ F $ 3", Relación: = 3, FormulaText: = "8"' agregar criterios - F3 no puede ser menor que 5000SolverAdd CellRef: = "$ F $ 5", Relación: = 3, FormulaText: = "5000"'encuentra una solución resolviendo el problemaSolverSolveEnd Sub

Una vez que ejecute el código, la siguiente ventana se mostrará en su pantalla. Seleccione la opción que necesite (es decir, Conservar la solución Solver o Restaurar valores originales) y haga clic en Aceptar.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave