Excel - Restricciones con celdas variables en Solver

 
Vista:
sin imagen de perfil

Restricciones con celdas variables en Solver

Publicado por cactus (16 intervenciones) el 09/06/2017 11:39:50
Buenas


Estoy haciendo una macro en Excel que me resuelve un ejercicio en Solver. Mi problema es que el número de variables que forman las restricciones son variables.
Es decir, yo tengo en la hoja "Resultados" mi celda objetivo y mis celdas a variar. El número de celdas a variar es variable, comenzando en la celda AF22 y terminando en la celda AF&var11. Del mismo modo, la fila de la celda objetivo también puede ser variable, estando en la columna AH y fila var2.
Las restricciones consisten en que las celdas AG22:AG&var11 sean iguales a otras celdas que hay en la pestaña "Datos de entrada": F31:F&var2.
Al ejecutar la macro obtengo el error '9' en el tiempo de ejecución: Subíndice fuera del intervalo.

Os pongo la macro para que se entienda mejor:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'Definición de variables
'Última fila 1
var2 = WorksheetFunction.Sum(Val(30), Sheets("Datos de entrada").Range("G28").Value)
'Última fila 2
var11 = WorksheetFunction.Sum(Val(21), Sheets("Datos de entrada").Range("G28"))
'Fila de la celda objetivo
var12 = var11 + Val(4)
'
'SOLVER
Sheets("Resultados").Select
Range(Cells(22, 32), Cells(var11, 32)).Select
Selection.ClearContents
'Objetivo
SolverOk SetCell:=Cells(var12, 34), MaxMinVal:=2, ValueOf:=0, ByChange:=Range(Cells(22, 32), Cells(var11, 32)), Engine :=3, EngineDesc:="GRG NonLinear"
'Restricciones
    SolverAdd CellRef:=Sheets("Resultados").Range(Sheets("Restultados").Cells(22, 33), Sheets("Resultados").Cells(var11, 33)), Relation:=2, FormulaText:=Sheets("Datos de entrada").Range(Sheets("Datos de entrada").Cells(31, 6), Sheets("Datos de entrada").Cells(var2, 6))
 
SolverSolve

Muchas gracias de antemano! A ver si podéis ayudarme...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de wordexperto.com
Val: 6.373
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Restricciones con celdas variables en Solver

Publicado por wordexperto.com (2801 intervenciones) el 09/06/2017 16:01:38
Hola Cactus, sin leer el detalle de tu pregunta, no uses conjuntamente Solver y vba. Si con Solver no es suficiente, parece que no porque las celdas variables varían, o lo planteas mejor en solver, añadiendo el máximo de celdas variables, con valor cero, para cuando no sean necesarias, o lo haces todo con vba. En este caso, recomendado.
https://wordexperto.com/blog/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Restricciones con celdas variables en Solver

Publicado por cactus (16 intervenciones) el 14/06/2017 12:25:09
Hola

Perdón por tardar en responder.

Entonces no es posible usar el solver de la manera que dije?

De todas formas te paso un ejemplo de lo que quiero hacer más o menos, a ver si ves algo raro.

Yo creo que el problema está en las restricciones....

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Restricciones con celdas variables en Solver

Publicado por cactus (16 intervenciones) el 14/06/2017 13:16:43
Hola

Perdón, te explico y te mando el nuevo archivo, que le encontré algún error:

La celda objetivo es la que pone SUMa (hay que minimizar)
Las celdas a variar son las que están debajo de A de la hoja resultados
Las restricciones son que las celdas de debajo de B de la hoja resultados sean iguales a las de debajo de B de la hoja datos de entrada

Pero todo esto está programado en vba en la macro calcular

Muchas gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Restricciones con celdas variables en Solver

Publicado por cactus (16 intervenciones) el 14/06/2017 13:48:41
En realidad las variables deben ser >=0

Pero, y ahora que Solver funciona (no sé por qué antes no funcionaba), ¿cómo lo programo en vba para que se ejecute este solver presionando el botón si las celdas pueden ser variables?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Restricciones con celdas variables en Solver

Publicado por cactus (16 intervenciones) el 14/06/2017 18:58:15
Pero sabrías programar el Solver en VBA?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Restricciones con celdas variables en Solver

Publicado por cactus (16 intervenciones) el 20/06/2017 11:38:59
TEMA SOLUCIONADO

Ya encontré el error y es que no se puede poner que las condiciones de las restricciones estén en otra hoja.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar