/ / Convertidor de divisas en Excel VBA

Convertidor de divisas en Excel VBA

A continuación veremos un programa en Excel VBA que crea una forma de usuario que conversos cualquier cantidad de uno moneda en otro.

El formulario de usuario que vamos a crear se ve de la siguiente manera:

Convertidor de divisas en Excel VBA

Para crear este formulario de usuario, ejecute los siguientes pasos.

1. Abra el Editor de Visual Basic. Si el Explorador de proyectos no está visible, haga clic en Ver, Explorador de proyectos.

2. Haga clic en Insertar, formulario de usuario. Si el Cuadro de herramientas no aparece automáticamente, haga clic en Ver, Cuadro de herramientas. Su pantalla debe configurarse como se muestra abajo.

Configuración de pantalla de formulario de usuario en Excel VBA

3. Agregue las etiquetas, los cuadros de lista (primero a la izquierda, el segundo a la derecha), los cuadros de texto (primero a la izquierda, el segundo a la derecha) y el botón de comando. Una vez que se haya completado, el resultado debe ser consistente con la imagen del formulario de usuario que se mostró anteriormente. Por ejemplo, cree un control de cuadro de lista haciendo clic en ListBox en el cuadro de herramientas. A continuación, puede arrastrar un cuadro de lista en el formulario de usuario.

4. Puede cambiar los nombres y las leyendas de los controles. Los nombres se utilizan en el código de Excel VBA. Los subtítulos son aquellos que aparecen en tu pantalla. Es una buena práctica cambiar los nombres de los controles, pero no es necesario aquí porque solo tenemos algunos controles en este ejemplo. Para cambiar el título del formulario de usuario, el botón de comando y las etiquetas, haga clic en Ver, Ventana de propiedades y haga clic en cada control.

5. Para mostrar el formulario de usuario, coloque un botón de comando en su hoja de trabajo y agregue la siguiente línea de código:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ahora vamos a crear el Sub UserForm_Initialize. Cuando use el método Mostrar para el formulario de usuario, este sub se ejecutará automáticamente.

6. Abra el Editor de Visual Basic.

7. En el Explorador de proyectos, haga clic con el botón derecho en UserForm1 y luego haga clic en Ver código.

8. Elija Userform en la lista desplegable de la izquierda. Elija Inicializar de la lista desplegable de la derecha.

9. Agregue las siguientes líneas de código:

Private Sub UserForm_Initialize()

With ListBox1
    .AddItem "Euro"
    .AddItem "Us Dollar"
    .AddItem "British Pound"
End With

With ListBox2
    .AddItem "Euro"
    .AddItem "Us Dollar"
    .AddItem "British Pound"
End With

ListBox1.ListIndex = 1
ListBox2.ListIndex = 0

TextBox1.Value = 1
TextBox2.Value = 0.722152

End Sub

Explicación: primero, se llenan los dos cuadros de lista. A continuación, la moneda del dólar estadounidense se establece como predeterminada en el primer cuadro de lista y la moneda EURO se establece como predeterminada en el segundo cuadro de lista. Finalmente, el valor 1 se ingresa en el primer cuadro de texto y el valor 0.722152 se ingresa en el segundo cuadro de texto.

Ahora hemos creado la primera parte del formulario de usuario. Aunque ya se ve bien, no sucederá nada cuando hagamos clic en el botón Ir.

10. En el Explorador de proyectos, haga doble clic en UserForm1.

11. Haga doble clic en el botón Ir.

12. Agregue las siguientes líneas de código:

Private Sub CommandButton1_Click()

Dim rates(0 To 2, 0 To 2) As Double, i As Integer, j As Integer

rates(0, 0) = 1
rates(0, 1) = 1.38475
rates(0, 2) = 0.87452

rates(1, 0) = 0.722152
rates(1, 1) = 1
rates(1, 2) = 0.63161

rates(2, 0) = 1.143484
rates(2, 1) = 1.583255
rates(2, 2) = 1

For i = 0 To 2
    For j = 0 To 2
        If ListBox1.ListIndex = i And ListBox2.ListIndex = j Then TextBox2.Value = TextBox1.Value * rates(i, j)
    Next j
Next i

End Sub

Explicación: en primer lugar, declaramos una matriz. La matriz tiene dos dimensiones. Consta de 3 filas y 3 columnas. A continuación, inicializamos cada elemento de la matriz. Por ejemplo, las tasas (1,0) es la tasa de cambio del dólar estadounidense a la EURO. A continuación, comenzamos un bucle doble. Dependiendo de las monedas seleccionadas en los cuadros de lista, Excel VBA convierte la cantidad ingresada en el primer cuadro de texto y muestra el resultado en el segundo cuadro de texto.

Ejemplo: si i = 2 y j = 1 e ingresamos el valor 2 en el primer cuadro de texto, Excel VBA coloca el valor 2 * tasas (2,1) = 2 * 1.583255 = 3.16651 en el segundo cuadro de texto.

13. Probar el formulario de usuario.

Resultado:

Resultado del conversor de moneda

Lea también: