Esta página le enseña cómo crear una calculadora de préstamos simple en Excel VBA . La hoja de trabajo contiene los siguientes controles ActiveX: dos barras de desplazamiento y dos botones de opción.

Calculadora de préstamos en Excel VBA

Nota: las instrucciones a continuación no le enseñan cómo formatear la hoja de trabajo. Suponemos que sabe cómo cambiar los tipos de fuentes, insertar filas y columnas, agregar bordes, cambiar los colores de fondo, etc.

Ejecute los siguientes pasos para crear la calculadora de préstamos:

1. Agregue los dos controles de la barra de desplazamiento. Haga clic en Insertar en la pestaña Desarrollador y luego haga clic en Barra de desplazamiento en la sección Controles ActiveX.

Crear barras de desplazamiento

2. Agregue los dos botones de opción. Haga clic en Insertar en la pestaña Desarrollador y luego haga clic en Botón de opción en la sección Controles ActiveX.

Crear botones de opción

Cambie las siguientes propiedades de los controles de la barra de desplazamiento (asegúrese de que el Modo de diseño esté seleccionado).

3. Haga clic con el botón derecho del mouse en el primer control de la barra de desplazamiento y luego haga clic en Propiedades. Establezca Min en 0, Max en 20, SmallChange en 0 y LargeChange en 2.

4. Haga clic con el botón derecho del mouse en el segundo control de la barra de desplazamiento y luego haga clic en Propiedades. Establezca Min en 5, Max en 30, SmallChange en 1, LargeChange en 5 y LinkedCell en F8.

Explicación: cuando hace clic en la flecha, el valor de la barra de desplazamiento sube o baja en SmallChange. Cuando hace clic entre el control deslizante y la flecha, el valor de la barra de desplazamiento sube o baja en LargeChange.

Cree un evento de cambio de hoja de trabajo. Excel VBA ejecutará el código agregado al evento de cambio de hoja de trabajo cuando cambie una celda en una hoja de trabajo.

5. Abra el Editor de Visual Basic .

6. Haga doble clic en Sheet1 (Sheet1) en el Explorador de proyectos.

7. Elija Hoja de trabajo en la lista desplegable de la izquierda y elija Cambiar en la lista desplegable de la derecha.

Evento de cambio de hoja de trabajo en Excel VBA

8. El evento de cambio de hoja de trabajo escucha todos los cambios en Sheet1. Solo queremos que Excel VBA ejecute el cálculo secundario si algo cambia en la celda D4. Para lograr esto, agregue la siguiente línea de código al Evento de cambio de hoja de trabajo (más sobre el sub Calcular más adelante).

If Target.Address = "$D$4" Then Application.Run "Calculate"

9. Obtenga el porcentaje correcto en la celda F6 (cambie el formato de la celda F6 a porcentaje). Haga clic con el botón derecho del mouse en el primer control de la barra de desplazamiento y luego haga clic en Ver código. Agregue las siguientes líneas de código:

Private Sub ScrollBar1_Change()

Range("F6").Value = ScrollBar1.Value / 100
Application.Run "Calculate"

End Sub

10. Haga clic con el botón derecho del mouse en el segundo control de la barra de desplazamiento y luego haga clic en Ver código. Agregue la siguiente línea de código:

Private Sub ScrollBar2_Change()

Application.Run "Calculate"

End Sub

11. Haga clic con el botón derecho del mouse en el primer control de botón de opción y luego haga clic en Ver código. Agregue la siguiente línea de código:

Private Sub OptionButton1_Click()

If OptionButton1.Value = True Then Range("C12").Value = "Monthly Payment"
Application.Run "Calculate"

End Sub

12. Haga clic con el botón derecho del mouse en el segundo control de botón de opción y luego haga clic en Ver código. Agregue la siguiente línea de código:

Private Sub OptionButton2_Click()

If OptionButton2.Value = True Then Range("C12").Value = "Yearly Payment"
Application.Run "Calculate"

End Sub

13. Es hora de crear el sub. Puede consultar nuestro subcapítulo Función y subcapítulo para obtener más información sobre los subs. Si tiene prisa, simplemente coloque el sub denominado Calcular en un módulo (en el Editor de Visual Basic, haga clic en Insertar, Módulo).

Sub Calculate()

Dim loan As Long, rate As Double, nper As Integer

loan = Range("D4").Value
rate = Range("F6").Value
nper = Range("F8").Value

If Sheet1.OptionButton1.Value = True Then
    rate = rate / 12
    nper = nper * 12
End If

Range("D12").Value = -1 * WorksheetFunction.Pmt(rate, nper, loan)

End Sub

Explicación: el sub obtiene los parámetros correctos para la función de hoja de trabajo Pmt. La función PMT en Excel calcula los pagos de un préstamo en base a pagos constantes y una tasa de interés constante. Si realiza pagos mensuales (Sheet1.OptionButton1.Value = True), Excel VBA usa rate / 12 para rate y nper * 12 para nper (número total de pagos). El resultado es un número negativo, porque los pagos se consideran débito. Multiplicar el resultado por -1 da un resultado positivo.

Resultado de la calculadora de préstamos

8/8 Completado! Obtenga más información sobre los controles Activex>
Siguiente capítulo: formulario de usuario