Macro con solver

27/10/2009 - 08:58 por Bruja | Informe spam
Hola Todos,

Como siempre me dirijo a ustedes porque me ayudan mucho. Estoy haciendo una
macro para sacar un Yiel to maturity y para sacar el yield es necesario usar
solver o recursividad, pero obvio prefiero solver. La cosa es que la macro es
un Public FUnc para usarlo como función cuando quiera, pero mi código sé que
está mal, pero no sé en que...alguien me puede ayudar, me mega urge.
Lo que trato de hacer es yo poner en la hojan de excel +YTM() con los
parámetros y que esto me regrese el valor del Yield Maturity y si se puede
tmb en otra celda el current yield...Les pongo el código que he hecho, espero
me puedan ayudar. Grax

La Bruja May

Public Function YTM(VN As Double, TC As Double, PDado As Double, Vencimiento
As Double, Frecuencia As Double)
Dim PrecioSol, TCP, CP, CA, CY, YTMPCorre

'Cálculo de cupones
TCP = TC / Frecuencia
CP = TCP * VN
CA = VN * T

'Cálculo de Current Yield
CY = CA / P
Worksheets("Yields").Cells(9, "d") = CY


' Macro para usar Solver
'
' Para poder usar esta macro, debe establecer una referencia a Solver:
' Cuando esté activado un módulo de Visual Basic, haga clic en
Referencias,
' del menú Herramientas, y active 'SOLVER'
' Si 'SOLVER' no aparece en la lista, haga clic en Examinar y abra
'Solver.xla'
' En mi PC 'Solver.xla' se encuantra en:
' C:\Archivos de programa\Microsoft Office\OFFICE11\Macros\SOLVER

Worksheets("Yields").Activate
SOLVER.SolvReset
SOLVER.SolvOk SetCell:="$E$16", MaxMinVal:=3, ValueOf:="0",
ByChange:="$D$16"
SOLVER.SolvSolve UserFinish:=True

SOLVER.SolverFinish keepfinal:=1

YTM = "$D$16" * Frecuencia

End Function
 

Leer las respuestas

#1 Juan M
27/10/2009 - 10:25 | Informe spam
"Bruja" escribió
Hola Todos,

Como siempre me dirijo a ustedes porque me ayudan mucho. Estoy haciendo
una
macro para sacar un Yiel to maturity y para sacar el yield es necesario
usar
solver o recursividad, pero obvio prefiero solver. La cosa es que la macro
es
un Public FUnc para usarlo como función cuando quiera, pero mi código sé
que
está mal, pero no sé en que...alguien me puede ayudar, me mega urge.
Lo que trato de hacer es yo poner en la hojan de excel +YTM() con los
parámetros y que esto me regrese el valor del Yield Maturity y si se puede
tmb en otra celda el current yield...Les pongo el código que he hecho,
espero
me puedan ayudar. Grax

La Bruja May

Public Function YTM(VN As Double, TC As Double, PDado As Double,
Vencimiento
As Double, Frecuencia As Double)
Dim PrecioSol, TCP, CP, CA, CY, YTMPCorre

'Cálculo de cupones
TCP = TC / Frecuencia
CP = TCP * VN
CA = VN * T

'Cálculo de Current Yield
CY = CA / P
Worksheets("Yields").Cells(9, "d") = CY


' Macro para usar Solver
'
' Para poder usar esta macro, debe establecer una referencia a Solver:
' Cuando esté activado un módulo de Visual Basic, haga clic en
Referencias,
' del menú Herramientas, y active 'SOLVER'
' Si 'SOLVER' no aparece en la lista, haga clic en Examinar y abra
'Solver.xla'
' En mi PC 'Solver.xla' se encuantra en:
' C:\Archivos de programa\Microsoft Office\OFFICE11\Macros\SOLVER

Worksheets("Yields").Activate
SOLVER.SolvReset
SOLVER.SolvOk SetCell:="$E$16", MaxMinVal:=3, ValueOf:="0",
ByChange:="$D$16"
SOLVER.SolvSolve UserFinish:=True

SOLVER.SolverFinish keepfinal:=1

YTM = "$D$16" * Frecuencia

End Function




Hola,

Y que es lo que hace esa funcion? en que consiste el calculo?
Puedes dar los parametros que necesita la funcion y que valor se espera en
un par de ejemplos?
Si sabes que el codigo que has expuesto esta mal, es por el resultado o por
errores de sintaxis?

Un saludo,
Juan

Preguntas similares