LLamar solver desde VBA

18/07/2003 - 21:25 por Jorge | Informe spam
Buenas tardes, Fernando Arroyo me dió una macro de
ejemplo para hacerlo y establecí una referencia a
Solver.xls desde Herramientas->Referencias, estando en el
editor de VBA pero nome funcionó, cómo puedo hacer? cuál
es el problema? me sale el error: No se ha definido Sub o
Funtion.

Sub UsarSolver()
'Se trata de averiguar el valor que debe tener la
celda B1 para que _
el resultado de la fórmula de la celda C1 (¡*B1)
sea 5
With ActiveSheet
.Range("A1") = 5 'Poner un dato en A1
.Range("C1").Formula = "¡*B1" 'Poner la fórmula
en C1
solverok setcell:=.Range("C1"), maxminval:=3,
valueof:="5", bychange:=.Range("B1")
End With
solversolve userfinish:=True 'Resolver
(userfinish:=true para que no se presente el diálogo
final)
End Sub

Gracias por la colaboración.
 

Leer las respuestas

#1 Fernando Arroyo
18/07/2003 - 22:08 | Informe spam
A mí sí me funciona. ¿Pones el código en un módulo creado por ti (no en ThisWorkbook ni en ninguno de los de las hojas?. Y también conviene que antes de establecer la referencia tengas activado Solver desde Herramientas->Complementos.
Si sigue sin funcionarte, dínos en qué línea se rompe la ejecución del código o aparece el error al compilar.
Un saludo.


Fernando Arroyo
MS MVP - Excel


"Jorge" escribió en el mensaje news:02da01c34d62$52623f10$
Buenas tardes, Fernando Arroyo me dió una macro de
ejemplo para hacerlo y establecí una referencia a
Solver.xls desde Herramientas->Referencias, estando en el
editor de VBA pero nome funcionó, cómo puedo hacer? cuál
es el problema? me sale el error: No se ha definido Sub o
Funtion.

Sub UsarSolver()
'Se trata de averiguar el valor que debe tener la
celda B1 para que _
el resultado de la fórmula de la celda C1 (¡*B1)
sea 5
With ActiveSheet
.Range("A1") = 5 'Poner un dato en A1
.Range("C1").Formula = "¡*B1" 'Poner la fórmula
en C1
solverok setcell:=.Range("C1"), maxminval:=3,
valueof:="5", bychange:=.Range("B1")
End With
solversolve userfinish:=True 'Resolver
(userfinish:=true para que no se presente el diálogo
final)
End Sub

Gracias por la colaboración.

Preguntas similares