Compartir a través de


PPmt (Función)

Actualización: noviembre 2007

Devuelve un valor de tipo Double que indica el pago de capital principal para un período determinado de una anualidad con pagos fijos periódicos y un tipo de interés fijo.

Function PPmt( _
   ByVal Rate As Double, _
   ByVal Per As Double, _
   ByVal NPer As Double, _
   ByVal PV As Double, _
   Optional ByVal FV As Double = 0, _
   Optional ByVal Due As DueDate = DueDate.EndOfPeriod _
) As Double

Parámetros

  • Rate
    Requerido. Double especifica el tipo de interés por período. Por ejemplo, si obtiene un crédito para comprar un automóvil a una tasa porcentual anual (TAE) del 10 por ciento, y realiza pagos mensuales, el tipo por período será 0,1/12 ó 0,0083.

  • Per
    Requerido. Double especifica el período de pago en el intervalo de 1 a NPer.

  • NPer
    Requerido. Double especifica el número total de períodos de pago (plazos) de la anualidad. Por ejemplo, si realiza pagos mensuales correspondientes a un crédito para adquirir un automóvil a cuatro años, el crédito tendrá un total de 4 x 12 (ó 48) períodos de pago.

  • PV
    Requerido. Double especifica el valor actual de una serie de pagos o ingresos futuros. Por ejemplo, en el momento de obtener un crédito para comprar un automóvil, el importe del mismo es el valor actual para el prestamista de los pagos mensuales que se realizarán.

  • FV
    Opcional. Double especifica el valor futuro o el saldo en efectivo que se desea tener una vez realizado el pago final. Por ejemplo, el valor futuro de un crédito es 0 $, puesto que ése es su valor después del pago final. Sin embargo, si desea ahorrar 50.000 dólares durante 18 años para la educación de su hijo, el valor futuro será 50.000 dólares. Si se omite, se supone que es 0.

  • Due
    Opcional. Objeto de tipo DueDate (Enumeración) que indica cuándo vencen los pagos. Este argumento debe ser DueDate.EndOfPeriod si los pagos vencen al final del período o DueDate.BegOfPeriod si los pagos vencen al principio del mismo. Si se omite, se supone que es DueDate.EndOfPeriod.

Excepciones

Tipo de excepción

Número de error

Condición

ArgumentException

Per <= 0 o Per > NPer.

Consulte la columna "Número de error" si está actualizando aplicaciones de Visual Basic 6.0 que utilizan el control de errores no estructurado. (Se puede comparar el número de error con respecto a Number (Propiedad, objeto Err)). Sin embargo, siempre que sea posible, se debe considerar la sustitución de dicho control de errores por Información general sobre el control estructurado de excepciones de Visual Basic.

Comentarios

Una anualidad es una serie de pagos fijos en efectivo realizados a lo largo de un período de tiempo. Puede ser un préstamo (como la hipoteca de un inmueble, por ejemplo) o una inversión (como un plan de ahorro mensual).

Los argumentos Rate y NPer deben calcularse utilizando períodos de pago expresados en las mismas unidades. Por ejemplo, si Rate se calcula en meses, NPer deberá calcularse del mismo modo.

Para todos los argumentos, el efectivo abonado (como depósitos de ahorro) se representa con números negativos; y el recibido (como cheques de dividendos), con números positivos.

Ejemplo

En este ejemplo se utiliza la función PPmt para calcular qué cantidad de un pago para un período especificado es el capital principal cuando todos los pagos tienen el mismo valor. Se proporcionan el tipo de interés porcentual por período (APR / 12), el período de pago para el que se desea la parte de capital principal (Period), el número total de pagos (TotPmts), el valor actual o principal del préstamo (PVal), el valor futuro del préstamo (FVal) y un número que indica si el pago vence al principio o al final del período de pago (PayType).

Sub TestPPMT()
    Dim PVal, APR, TotPmts, Payment, Period, P, I As Double
    Dim PayType As DueDate
    Dim Msg As String
    Dim Response As MsgBoxResult

    ' Define money format.
    Dim Fmt As String = "###,###,##0.00"
    ' Usually 0 for a loan.
    Dim Fval As Double = 0
    PVal = CDbl(InputBox("How much do you want to borrow?"))
    APR = CDbl(InputBox("What is the annual percentage rate of your loan?"))
    ' Ensure proper form.
    If APR > 1 Then APR = APR / 100
    TotPmts = CDbl(InputBox("How many monthly payments do you have to make?"))
    Response = MsgBox("Do you make payments at the end of month?", MsgBoxStyle.YesNo)
    If Response = MsgBoxResult.No Then
        PayType = DueDate.BegOfPeriod
    Else
        PayType = DueDate.EndOfPeriod
    End If
    Payment = Math.Abs(-Pmt(APR / 12, TotPmts, PVal, FVal, PayType))
    Msg = "Your monthly payment is " & Format(Payment, Fmt) & ". "
    Msg = Msg & "Would you like a breakdown of your principal and "
    Msg = Msg & "interest per period?"
    ' See if chart is desired. 
    Response = MsgBox(Msg, MsgBoxStyle.YesNo)
    If Response <> MsgBoxResult.No Then
        If TotPmts > 12 Then MsgBox("Only first year will be shown.")
        Msg = "Month  Payment  Principal  Interest" & vbNewLine
        For Period = 1 To TotPmts
            ' Show only first 12.
            If Period > 12 Then Exit For
            P = PPmt(APR / 12, Period, TotPmts, -PVal, FVal, PayType)
            ' Round principal.
            P = (Int((P + 0.005) * 100) / 100)
            I = Payment - P
            ' Round interest.
            I = (Int((I + 0.005) * 100) / 100)
            Msg = Msg & Period & vbTab & Format(Payment, Fmt)
            Msg = Msg & vbTab & Format(P, Fmt) & vbTab & Format(I, Fmt) & vbNewLine
        Next Period
        ' Display amortization table.
        MsgBox(Msg)
    End If
End Sub

Requisitos

Espacio de nombres:Microsoft.VisualBasic

**Módulo:**Financial

**Ensamblado:**Visual Basic Runtime Library (en Microsoft.VisualBasic.dll)

Vea también

Referencia

Resumen financiero

ArgumentException