Funciones Financieras

VBA tiene una serie de funciones financieras además de las que ya tiene Excel, que nos ofrece la oportunidad de crear potentes aplicaciones para finanzas empresariales o personales.

Si desea repasar las funciones financieras de Excel aquí tiene un documento que tal vez pueda ayudarle.

Para estudiar las propias de VBA volvamos al examinador de objetos. Pulse F2 y en el cuadro de búsqueda inserte FINANCIAL. Inmediatamente pordrá ver los miembros de Financial:

Las más usuales son:

rate: tasa fija de interés.

nper:nº de períodos

pmt: pagos o depósitos periódicos.

pv:valor actual del préstamo

fv: valor futuro del préstamo o inversión.

type:tipo de pago o depósito.

El siguiente ejemplo muestra el cálculo de la cuota para un préstamo francés:

Sub otro()
Dim Fmt, FVal, PVal, APR, TotPmts, Tipopago, Pago
Const PERIODFIN = 0, PERIODINI = 1    ‘ Momento de los pagos.
Fmt = “###,###,##0.00”    ‘ Define el formato.
FVal = 0    ‘ Normalmente 0 (crédito).
PVal = InputBox(“¿Cuánto dinero desea solicitar?”)
APR = InputBox(“¿Cuál es la tasa anual porcentual del crédito?”)
If APR > 1 Then APR = APR / 100    ‘ Asegura la forma correcta.
TotPmts = InputBox(“¿Cuantos pagos mensuales va a realizar?”)
Tipopago = MsgBox(“¿Realiza los pagos al final del mes?”, vbYesNo)
If Tipopago = vbNo Then Tipopago = PERIODINI Else Tipopago = PERIODFIN
Pago = Pmt(APR / 12, TotPmts, -PVal, FVal, Tipopago)
MsgBox “El importe del pago será ” & Format(Pago, Fmt) & ” al mes.”

End Sub

 

En la práctica que aquí se expone, se ha realizado el cálculo de las cuotas de un préstami tipo francés mediante Excel:

En F10 se inserta la fórmula siguiente:=(Va*i/q)/(1-(1+i/q)^-(n*q))

Si qusiéramos hacerlo mediante VBA el código asociado sería el siguiente:

Sub prestamo_dos()
Dim cuantia, cuota, tipo, periodos, i, r
Const k = 0.25 / 100

tipo = (Cells(4, 4).Value) / 100
periodos = Cells(5, 4).Value
cuantia = Cells(3, 4).Value

Cells(9, 2) = Cells(4, 4) / 100
For i = 9 To 15
Cells(i, 2).Value = (Cells(i – 1, 2).Value) + k
r = Cells(i, 2).Value
Cells(i, 6) = Abs(Pmt(r, periodos, cuantia))
Cells(i, 5) = Abs(Pmt(r / 2, periodos * 2, cuantia))
Cells(i, 4) = Abs(Pmt(r / 4, periodos * 4, cuantia))
Cells(i, 3) = Abs(Pmt(r / 12, periodos * 12, cuantia))

Next

End Sub

 

 

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: