Conversor de divisas

A continuación veremos un programa en Excel VBA que crea un Userform que convierte cualquier cantidad de una moneda en otra.

La forma de usuario que vamos a crear tiene el siguiente aspecto:

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. 2. Haga clic en Insertar, Formulario de usuario. 3. Si la Caja de herramientas no aparece automáticamente, haga clic en Ver, Caja de herramientas. La pantalla debe configurarse como se indica a continuación.

3. Añade las etiquetas, las cajas de lista (la primera a la izquierda, la segunda a la derecha), las cajas de texto (la primera a la izquierda, la segunda a la derecha) y el botón de comando. Una vez completado, el resultado debe ser coherente con la imagen del formulario de usuario que se ha mostrado anteriormente. Por ejemplo, cree un control de cuadro de lista haciendo clic en ListBox desde la Caja de Herramientas. A continuación, puedes arrastrar un cuadro de lista en el Userform.

4. Puedes cambiar los nombres y los títulos de los controles. Los nombres se usan en el código VBA de Excel. Los subtítulos son los que aparecen en la pantalla. Es una buena práctica cambiar los nombres de los controles, pero no es necesario aquí porque sólo tenemos unos pocos controles en este ejemplo. Para cambiar la leyenda de la forma 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 añada la siguiente línea de código:

Soldado Sub Sub CommandButton1_Click() Formulario de usuario1.Show End Sub

Ahora vamos a crear el Sub UserForm_Initialize. Al usar el método Show para el Userform, este sub se ejecutará automáticamente.

6. Abre el Editor de Visual Basic.

7. En el Explorador del Proyecto, haga clic con el botón derecho en UserForm1 y luego haga clic en View Code.

8. Seleccione Formulario de usuario en la lista desplegable de la izquierda. 9. Seleccione Inicializar en la lista desplegable de la derecha.

9. Añade las siguientes líneas de código:

Private Sub UserForm_Initialize() Con ListBox1 …AddItem «Euro»… …elemento adicional «Dólar estadounidense»… … «Libra esterlina». Termina con Con ListBox2 …AddItem «Euro»… …elemento adicional «Dólar estadounidense»… … «Libra esterlina». Termina con ListBox1.ListIndex = 1 ListBox2.ListIndex = 0 TextBox1.Value = 1 TextBox2.Value = 0.722152 End Sub

Explicación: primero, las dos casillas de la lista están llenas. A continuación, la moneda del dólar estadounidense se establece como predeterminada en la primera lista y la moneda del euro se establece como predeterminada en la segunda lista. Finalmente, se introduce el valor 1 en el primer cuadro de texto y el valor 0,722152 en el segundo cuadro de texto.

Hemos creado la primera parte de la forma de usuario. Aunque ya se ve bien, no pasará nada aún cuando hagamos clic en el botón «Ir».

10. En el Explorador del Proyecto, haga doble clic en UserForm1.

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

12. Añade las siguientes líneas de código:

Soldado Sub Sub CommandButton1_Click() Dim rates(0 a 2, 0 a 2) As Double, i As Integer, j As Integer tasas(0, 0) = 1 tasas(0, 1) = 1.38475 tasas(0, 2) = 0,87452 tasas(1, 0) = 0,722152 tasas(1, 1) = 1 tasas(1, 2) = 0,63161 tasas(2, 0) = 1.143484 tasas(2, 1) = 1,583255 tasas(2, 2) = 1 Para i = 0 a 2 Para j = 0 a 2 Si ListBox1.ListIndex = i y ListBox2.ListIndex = j entonces TextBox2.Value = TextBox1.Value * rates(i, j) Siguiente j Siguiente… End Sub

Explicación: primero, declaramos una matriz. La matriz tiene dos dimensiones. Consiste en 3 filas y 3 columnas. A continuación, inicializamos cada elemento de la matriz. Por ejemplo, rates(1,0) es la tasa de la moneda de Dólar Americano a EURO. A continuación, iniciamos un doble bucle. Dependiendo de las monedas seleccionadas en los cuadros de lista, el 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 introducimos el valor 2 en el primer cuadro de texto, el Excel VBA coloca el valor 2 * tasas(2,1) = 2 * 1.583255= 3.16651 en el segundo cuadro de texto.

13. Pruebe el formulario de usuario.

Resultado:

Deja un comentario