Solver con Macro

29/04/2006 - 02:17 por Ricardo Andrés | Informe spam
Estimada gente del foro:

Necesito hacer una macro la cual me solucione una funcion objetivo
utilizando Solver a traves de Visual Basic. Para hacer esto, comienzo a
grabar una macro en donde uso solver tal a como quiero que se ejecute
posteriormente en la macro, pero al momento de ejecutarla me sale error.
Analizando el codigo, he llegado a la conclucion de que la parte en donde se
definen las celdas cambiantes es donde se presenta este problema y me sale un
error que dice "Error inesperado o memoria insuficiente", pero es imposible
que sea memoria insuficiente por que lo he probado en varios computadores de
muy buenas especificaciones y aun asi no corre. me gustaria que me guiaran
sobre como solucionar este problema. Mi version de Exel es 2003.

De antemano agradezco su ayuda

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
29/04/2006 - 03:57 | Informe spam
hola, Ricardo !

Necesito hacer una macro... utilizando Solver a traves de Visual Basic.
... comienzo a grabar una macro... pero al momento de ejecutarla me sale error.
... que dice "Error inesperado o memoria insuficiente"
... es imposible que sea memoria insuficiente
... lo he probado en varios computadores de muy buenas especificaciones y aun asi no corre
... me gustaria que me guiaran sobre como solucionar este problema. Mi version de Exel es 2003.



[hasta donde se]... deberas tomar en cuenta las siguientes 'observaciones':
- para 'poder' usar el solver [por codigo], es necesario...
-> establecer una referencia [en el proyecto de macros] a la libreria 'solver.xla' [NO solver.dll]
-> buscando la ubicacion 'apropiada' con [menu] [herramientas / referencias <-
[la cual, pudiera variar segun la version -ingles/español- del sistema operativo]
- hay 'ligeros' cambios entre excel '97/2000 y excel xp/2003 ...
las 'llamadas' [por codigo] a las funciones del solver [como SolverOK, SolverAdd, etc.]
en xp/2003 'pasan' [reducidas] a: SolvOK, SolvAdd, etc. les 'sobra' el 'sufijo' ->[solv]ER<-
- [probablemente] la primera vez que lo ejecutes mandara un mensaje de error:
->error inesperado o memoria agotada<- :((
para 'resolverlo' [y SOLO por unica vez] 'tendras que' usar la siguiente instruccion...
->Application.Run "Solver.xla!Auto_Open"<-
- tomar en cuenta IDIOMAS p.e.
para 'FormulaText:=' en castellano 'binario' debe cambiarse por 'binary' [si se correra en un excel en ingles] -?-
- tomar precauciones si se va a correr en hojas 'protegidas' <= OJO

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Ricardo Andrés
29/04/2006 - 04:43 | Informe spam
Aun despues de agregarle el comando ->Application.Run "Solver.xla!Auto_Open"<-
aun me sale el mensaje de error que dice "error inesperado, o memoria
insuficiente". no existe otra solucion, o es definitivamente error del
programa. el codigo que estoy implementando es este:

Sub solver1()

Application.Run ("Solver.xla!Auto_Open")
SolverRestablecer
Solveraceptar celdascambiantes:=Range("b30:d30")
SolverAgregar referenciaCelda:="$B$31", relación:=2, Formula:="$D$31"
SolverAgregar referenciaCelda:="$B$32", relación:=2, Formula:="$D$32"
SolverAgregar referenciaCelda:="$B$33", relación:=2, Formula:="$D$33"
SolverResolver
End Sub

Por favor corregirme si estoy mal en alguna linea, o si me entiende lo que
quiero hacer en el codigo, por favor enviarme el codigo correcto para la
utilizacion de la macro
Respuesta Responder a este mensaje
#3 Ricardo Andrés
29/04/2006 - 04:56 | Informe spam
Gracias, ya pude solucionar el problema. Sucede que si uno no le agrega una
celda objetivo, el solver por Visual Basic no corre, pero utilizando solver
sin macro, al no agregarle celda objetivo aun asi si corre.

Gracias
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida