codigo SOLVER

24/01/2009 - 18:06 por j_lete | Informe spam
Buenas tardes:
He creado una macro para ejecutar solver que va a ser utilizada por usuarios
con nivel muy basico, por lo que si en su puesto no tienen activada la
libreria correspondiente no les va a funcionar.
Existe algun código que permita ejecutar la macro sin tener que activar la
librería?
Si no es así, ¿alguien sabe donde puedo encontrar un codigo que haga lo
mismo que solver?
Gracias

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
11/03/2009 - 03:16 | Informe spam
hola, !

... se tendria que ejecutar en unos 1000 Pc's y... los usuarios son nivel basico en su mayoria.
he realizado una prueba anadiendo a la macro la instruccion que indicas Application.Run "Solver.xla!Auto_Open
pero si no tienes marcada en la libreria solver.xla, no me funciona.



=> este detalle ya habia quedado (creo) lo suficiente claro en los comentarios anteriores -?-

Por tanto al final vamos a realizar algo mas simple parecido a un buscar objetivo
donde el usuario introduce un valor, y mediante un bucle y partiendo de 3 valores maximo, medio y minimo
se va ajustando al valor buscado hasta que la diferencia sea (por ejemplo) de 1 milesima...



=> si estas utilizando el solver con una sola celda cambiante (ByChange:="$C$8")
por que no pruebas directamente con la opcion de "uscar objetivo" (como bien comentas) ? (p.e.)

Sub Objetvo()
Dim Par As Double
Par = InputBox("Intoducir T.A.E.")
Range("C13").GoalSeek Goal:=Par, ChangingCell:=Range("C8")
End Sub

saludos,
hector.

__ OP __
El codigo es muy sencillo:
Sub SOLVER()
Dim par As Double
par = InputBox("Introducir T.A.E.")
SolverReset
SolverOk SetCell:="$C$13", MaxMinVal:=3, ValueOf:=par, ByChange:="$C$8"
SolverSolve
End Sub
Respecto a la macro, en efecto sera instalada (si consigo solucionar el problema) en bastantes PC's
todos con la misma version de excel (de momento 2003 puede que en el futuro 2007).



la macro que expones fue creada con la version 97 o 2000 de excel (por el tipo de llamadas a SolverOk, SolverSolve, etc.)

Para la 2ª opcion mi pregunta era sobre si alguien conoce algun foro/pagina
que tenga disponible algun codigo que funcione como la funcion solver



para esta segunda parte (sin que pierdas de vista el comentario a la primera)...
toma nota de los siguientes comentarios y... si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

1) es probable que cuando ejecutas la macro sea en una sesion fresca de excel ?
(es decir, cuando NO se ha ejecutado la herramienta del solver desde la interfase de usuario) -?-

2) (hasta donde se)... deberas tomar en cuenta las siguientes observaciones:
para poder usar el solver (por codigo), es necesario que el complemento solver.xla este cargado en la sesion...
para lo cual, tienes -al menos- dos opciones/alternativas/formas/... para cargarlo:
a) usarlo en vivo y a todo color (o sea, desde la interfase de usuario desde el menu herramientas / ... etc.)
b) 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

(solo por no dejarlo en el tintero)...

1) ya comprobaste que la herramienta este habilitada desde (menu) herramientas / complementos -?-

2) revisa en (menu) ayuda / acerca de microsoft excel / (boton) elementos deshabilitados...

3) asegurate que la libreria (solver.dll) se encuentre en la misma ubicacion que el complemento (solver.xla)

4) prueba ejecutando el solver por segunda (y/o quizas tercera) ocasion -?-
(incluso cerrando y volviendo a abrir el excel)

(probablemente existan otras soluciones ?)... comentas si algo de lo anterior funciona ?
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida