A continuación vamos a ver un programa en Excel VBA que crea un formulario de usuario que convierte cualquier cantidad de una moneda a otra.

El formulario de usuario que se va a crear un aspecto de la siguiente manera:

Currency Converter in 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 es 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, Caja de herramientas. Su pantalla debe ser configurado de la siguiente manera.

Userform Screen Setup in Excel VBA

  1. Añadir las etiquetas, cuadros de lista (primero a la izquierda, el segundo a la derecha) botón de comando, cuadros de texto (primero a la izquierda, el segundo a la derecha) y. Una vez que esto se ha completado, el resultado debe ser consistente con la imagen del formulario de usuario mostrado anteriormente. Por ejemplo, crear una lista de control de la caja haciendo clic en ListBox de la caja de herramientas. A continuación, puede arrastrar un cuadro de lista en el formulario de usuario.

  2. Puede cambiar los nombres y los títulos de los controles. Los nombres se utilizan en el código VBA Excel. Los títulos son los que aparecen en la pantalla. Es una buena práctica para cambiar los nombres de los controles, pero no es necesario en este caso, porque sólo tenemos unos pocos controles en este ejemplo. Para cambiar el título del botón de comando y las etiquetas de formulario de usuario, haga clic en Ver, Ventana Propiedades y haga clic en cada control.

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

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

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

  1. Abra el Editor de Visual Basic.

  2. En el Explorador de proyectos, haga clic en UserForm1 y haga clic en Ver código.

  3. Elegir formulario de usuario de la lista desplegable izquierda. Inicializar elegir de la lista desplegable de la derecha.

  4. Se añaden 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: en primer lugar, los dos cuadros de lista están llenos. A continuación, la moneda dólar de EE.UU. se establece de forma predeterminada en el primer cuadro de lista y el euro currencyis establece de forma predeterminada en el segundo cuadro de lista. Por último, el valor 1 se introduce en el primer cuadro de texto y el valor 0.722152 se introduce en el segundo cuadro de texto.

Ahora hemos creado la primera parte del formulario de usuario. A pesar de que se ve bien ya, no pasará nada sin embargo, cuando se hace clic en el botón Ir.

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

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

  3. Añadir 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 un array. La matriz tiene dos dimensiones.

Consta de 3 filas y 3 columnas. A continuación, inicializar cada elemento de la matriz. Por ejemplo, las tasas de (1,0) es el tipo de moneda de dólar estadounidense a EURO. A continuación, se inicia un bucle doble. Dependiendo de las monedas seleccionadas en los cuadros de lista, Excel VBA convierte el importe ingresado en el primer cuadro de texto y muestra el resultado en el segundo cuadro de texto.

Ejemplo: si i = 2 y j = 1 y que introduce 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.

Prueba 13. el formulario de usuario.

Resultado:

Currency Converter Result