SOLVER

14/11/2007 - 22:52 por Orfao | Informe spam
Hola grupo !
Hace algun tiempo desarrolle una aplicacion para el estudio de carreras de
caballos
no recuerdo si con la version 95 o 97 de excel...
El echo es que ahora desempolvando viejos archivos la he encontrado...
pero...sorpresa ! no funciona.

Aparentemente el error se produce porque no puede compilar las macros.
Me explico: tengo un libro inicial donde estan las macros principales y las
barras de menus
este libro en un addin y abre una serie de formularion como splah, pantalla
de bienvenida y de autorizacion de acceso. una vez admitido este, se habre un
segundo libro con una sola hoja donde aparece "abriendo el archivo", Welcome,
imagenes, sonidos y demas, esto lo uso para evitar que el ultimo libro se
abra en una hoja diferente a la primera la cual contiene una serie de botones
a manera de menu. y cambia la configuaracion de ese tercer libro de is
addin=true a false (este libro tiene una instruccion en wokbook open donde
verifica si esta abierto el primero y segundo libro y de no ser asi se
cierra no permitiendo abrirlo ) por fin cuando todas las condiciones estan
dadas aleluya ! abro el tercer libro y una vez en el tengo opccion a toda la
aplicacion . En ese tercer libro tengo otra cantidad de macros para las
diferentes acciones a realizar entre las que se encuentran funciones de
solver ( p ro b l e ma ). El libro no se abre con excel 2003 (aunque por
otros metodos y por medio de algunas claves de superusuario que introduzco en
el libro uno me permite pasar al editor de visual basic para ver lo que esta
sucediendo... Ufff... Me percate que tengo instalado el complemento solver
pero en vba me falta la referencia.. opte por eliminar el complemento y
reinstalarlo buscandolo en macros/solver/ solver.xla (y probe tambien con
solver.dll) en ese momento a pesar de haber desinstalado el anterior me dice
que ya existe un complemento con ese nombre pero dde todas maneras lo acepta
y entonces si cuando paso a vba puedo activarlo en referencias.
luego compilo y todo bien... pero... cuando cierro y vuelvo resulta que esta
como al principio... no hay referencia en fin no entendi nada de nada...
alguno de ustedes por favor me echa una mano al respecto. ?... GRACIAS.

PD (Esto se estaba alargando demasiado parece una historia de pasion y dolor
je je je )...



Me alimento del conocimiento de todos
 

Leer las respuestas

#1 Héctor Miguel
15/11/2007 - 01:57 | Informe spam
hola, moises !

__ A __
Hace... tiempo desarrolle una aplicacion... no recuerdo si con la version 95 o 97 de excel...


__ B __
... ahora... la he encontrado... pero... no funciona. Aparentemente el error se produce porque no puede compilar las macros.
... cantidad de macros... entre las que se encuentran funciones de solver ( p ro b l e ma ). El libro no se abre con excel 2003 ..
... cuando paso a vba puedo activarlo en referencias. luego compilo y todo bien... pero...
cuando cierro y vuelvo resulta que esta como al principio... no hay referencia en fin no entendi nada de nada...



(si crees que tu cosulta ya se iba pasando de "larga")... ahi te van unas propuestas :))
y... si cualquier duda (o informacion adicional)... comenas ?
saludos,
hector.

A) puedes consultar la version de creacion del archivo original (p.e.) con un MsgBox ActiveWorkbook.FileFormat
devuelve un entero/constante (consulta la ayuda en linea de vba {F1} por las equivalencias de las versiones)

B) esta parte va por partes :D

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 ?

Preguntas similares