Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Ejemplo de Userform para evaluar créditos

| 1 comentario

En muchos países como Estados Unidos, las personas poseen un puntaje llamado "Credit Score".  Este número, el cual se encuentra entre  300 y 850,  refleja el buen o mal manejo que las personas hacen de su crédito, y por tanto, es de valiosa consideración para bancos y otras entidades.

En este artículo, explicaré como crear un userform para calcular  el Credit Score de una persona bajo 2 criterios, el balance de crédito y el historial de morosidad.

PREPARACIÓN

-Insertamos un botón que nos llevará a Userform1, el cual será definido posteriormente.

-Designamos el peso relativo que tendrá el balance de crédito y el historial de morosidad.

-Designamos los límites de fondos en tarjetas de crédito, importante para el balance de crédito (Se asume que solo hay 3  bancos en el Perú, para simplificar)

 

Userform evaluar creditos 01

(Para mayor visualización de la imagen, hacer click en la misma)

BALANCE DE CRÉDITO

Creamos Userform1

Userform evaluar creditos 02

(Para mayor visualización de la imagen, hacer click en la misma)

-¿Qué tarjetas de credito posee? : A más tarjetas, mayor el límite de crédito disponible (los límites de cada tarjeta están en las celdas en la parte de preparación). Eso se reflejará en la caja de texto al calcular el límite mensual en soles mediante los siguiente comandos:

Dim Scotia As Integer
Dim Bcp As Integer
Dim Continental As Integer

Private Sub CheckBox1_Click()
Scotia = Hoja1.Cells(9, 13)
End Sub

Private Sub CheckBox2_Click()
Bcp = Hoja1.Cells(10, 13)
End Sub

Private Sub CheckBox3_Click()
Continental = Hoja1.Cells(11, 13)
End Sub

Private Sub CommandButton2_Click()
TextBox2 = Scotia + Bcp + Continental
End Sub

-Gasto mensual en soles por tarjeta de crédito: Esto nos permitirá saber en cuál es el gasto mensual al sumar el gasto de las tarjetas mediante el botón "total".  Vinculamos  las listas despegables con los nombres de los bancos para hacer el proceso más interactivo. Finalmente, establecemos una condicón en la cual el gasto total no puede exceder los fondos disponibles de las líneas de crédito. Los comandos en VBA son los siguientes:

Private Sub CommandButton3_Click()
TextBox6 = Val(TextBox3) + Val(TextBox4) + Val(TextBox5)
End Sub

Private Sub UserForm_Activate()
For x = 9 To 11
ComboBox1.AddItem (Cells(x, 12))
ComboBox2.AddItem (Cells(x, 12))
ComboBox3.AddItem (Cells(x, 12))
Next
End Sub

Private Sub TextBox6_Change()
If Val(TextBox6) > Val(TextBox2) Then
MsgBox "El gasto mensual no puede exceder el límite de crédito"
Else
End If
End Sub

-Calcular puntaje de esta sección: Nos permite obtener un Credit Score parcial para esta sección. Tal Credit Score parcial es igual a 300 + resto. (el puntaje no puede ser menor a 300)  Aplicando select case, le damos diferentes valores a "resto" dependiendo de otro valor llamado "razón" =  gasto/fondos disponibles. A menor gasto y mayores fondos disponibles, menor el valor de "razón", y por tanto mayor el Credit Score parcial.

Private Sub CommandButton4_Click()
Dim resto As Integer
Dim razon As Integer
razon = Val(TextBox6) / Val(TextBox2)
Select Case razon
Case razon >= 0 And razon < 0.05
resto = 550
Case razon >= 0.05 And razon < 0.15
resto = 440
Case razon >= 0.15 And razon < 0.25
resto = 410
Case razon >= 0.25 And razon < 0.35
resto = 380
Case razon >= 0.35 And razon < 0.55
resto = 290
Case razon >= 0.55 And razon < 0.75
resto = 220
Case razon >= 0.75 And razon <= 1
resto = 0
End Select
TextBox1.Value = 300 + resto
End Sub

-Siguiente: nos lleva a Userform2 y escribe el primer puntaje parcial en la celda respectiva de la hoja 1.

Private Sub CommandButton1_Click()
Cells(3, 14).Value = UserForm1.TextBox1
UserForm2.Show
End Sub

HISTORIAL DE MOROSIDAD

Creamos Userform2

Userform evaluar creditos 03

(Para mayor visualización de la imagen, hacer click en la misma)

-Realizamos 2 preguntas sobre morosidad en tarjetas de crédito,  hipotecas y préstamos personales, mediante el siguiente código:

Dim hipoteca As Integer
Dim tarjeta As Integer
Dim prestamo As Integer

Private Sub CheckBox1_Click()
hipoteca = 200
End Sub

Private Sub CheckBox2_Click()
prestamo = 100
End Sub

Private Sub OptionButton1_Click()
tarjeta = 250
End Sub

-Puntaje en esta sección: El segundo resultado parcial, donde cada instancia de morosidad reduce nuestro puntaje, siendo 300 el mínimo y 850 el máximo.

Private Sub CommandButton2_Click()
TextBox1 = 850 - (hipoteca + tarjeta + prestamo)
End Sub

-Finalizar: pondera ambos resultados parciales de acuerdo a su peso relativo (indicado en las celdas correspondientes) y obtiene el Credit Score Final y anunciarlo con un Message Box.

Private Sub CommandButton1_Click()
Cells(4, 14).Value = UserForm2.TextBox1
Dim PuntajeFinal As Integer
parte1 = Val(Hoja1.Cells(3, 13))
parte2 = Val(Hoja1.Cells(4, 13))
PuntajeFinal = parte1 * UserForm1.TextBox1.Value + parte2 * UserForm2.TextBox1.Value
Cells(5, 14).Value = PuntajeFinal
MsgBox "Su Credit Score es " & PuntajeFinal
End Sub

NOTAS

-Se vuelve a mencionar que este ejemplo está basado en el sistema de puntaje que existe en países como EEUU, pero de una manera simplificada, aplicada para el Perú y para uso personal (las entidades bancarias usarían reportes financieros y otras herramientas)

-Se adjunta el ejemplo en el siguiente archivo  Calculadora de credit score

________

Elaborado por: Gonzalo Irujo

Un comentario

  1. Este ejemplo de uso de Userform para calcular créditos, me ayudo a interesarme en la combinación de userform. Por ejemplo:
    El código de una userform1 con dos textbox cuya multiplicación va al textbox1 del userfom2. El código para este ejemplo es el siguiente:

    Private Sub CommandButton1_Click()
    UserForm2.TextBox1 = TextBox2 * TextBox1
    Unload Me
    UserForm2.Show
    End Sub

    Espero pueda aclarar dudas.
    Saludos.

Deja una respuesta

Los campos requeridos estan marcados con *.