Excel Avanzado

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

Excel Avanzado

Ejemplo de Select Case y If ... Then aplicado a la conversión de Tipo de cambio

| 2 comentarios

En este ejemplo, se presenta la aplicación de Select Case y If ... then en un conversor de tipo de cambio, en el cual se puede convertir una cantidad de Dólares, Euros, Yenes o Nuevos Soles a cualquiera de estas ya mencionadas.

Para realizar, se necesitan llenar 3 espacios: la cantidad que se desea convertir, la moneda inicial que se desea convertir y la moneda a la que se desea convertir la cantidad inicialmente ingresada. Para este trabajo, elegí trabajar con cuadros de texto. En el primer caso, el número es llenado y almacenado para ser luego operado. El tipo de moneda inicial y final pueden ser elegidos ingresando en el cuadro de texto el número de opción que le corresponda al tipo de moneda elegido (1: Dólares Norteamericanos, 2: Euros, 3: Yenes, 4: Nuevos Soles). Finalmente, se presiona el botón "convertir cantidad" y se obtendrá en la parte inferior el cálculo realizado.

Convertor de Tipo de Cambio 1

A continuación, dejo el convertor en lenguaje vba para poder ser replicado en el EVB.

_____________________________________________________________________________________________

Private Sub Workbook_Open()
MsgBox "Introducir un valor para 'Cantidad' y elegir una opción numérica (entre 1 y 4) para la 'Moneda Inicial' y la 'Moneda a Convertir' para ejecutar el cálculo"
UserForm1.Show
End Sub
_____________________________________________________________________________________________

Private Sub CommandButton1_Click()

c = Val(TextBox1.Text)
moneda = Val(TextBox2.Text)
vmc = Val(TextBox3.Text)
mc = Val(TextBox3.Text)

Select Case moneda
Case 1: moneda = 2.582
Case 2: moneda = 3.357
Case 3: moneda = 0.027
Case 4: moneda = 1
Case 5 To 20000: MsgBox "Número inválido. Ingresar un número entre 1 y 4."
End Select

Select Case vmc
Case 1: vmc = 2.582
Case 2: vmc = 3.357
Case 3: vmc = 0.027
Case 4: vmc = 1
Case 5 To 20000: MsgBox "Número inválido. Ingresar un número entre 1 y 4."
End Select

Select Case mc
Case 1: mc = "Dólares N.A."
Case 2: mc = "Euros"
Case 3: mc = "Yenes"
Case 4: mc = "Nuevos Soles"
Case 5 To 20000: MsgBox "Número inválido. Ingresar un número entre 1 y 4."
End Select

cc = moneda * c / vmc

TextBox4.Text = cc
TextBox5.Text = mc
End Sub

____________________________________________________________________________________________________

Asimismo, es posible replicar el cuadro aterior con otro formato usando la función "if ... then".

Primero, llenamos en una hoja de Excel los datos que necesitamos para comenzar a realizar los cálculos: nombre de las monedas y su equivalencia en Nuevos Soles.

cuadro-1

Luego, enlazamos la página a la lista desplegable que queremos poner en el cuadro de conversión:

Private Sub UserForm_Activate()

UserForm1.ComboBox1.RowSource = "Hoja1!A2:A5"
UserForm1.ComboBox2.RowSource = "Hoja1!A2:A5"

End Sub

De manera similar, también se deben llenar estos 3 espacios necesarios para poder realizar la conversión. De esta manera, se puede lograr un cuadro como este:

Convertor de Tipo de Cambio 2

A continuación, dejo el conversor en lenguaje vba para poder ser replicado en el EVB.

_____________________________________________________________________________________________

Private Sub Workbook_Open()
MsgBox "Introducir los valores: Cantidad, Moneda Inicial y Moneda a Convertir para ejecutar el cálculo"
UserForm1.Show
End Sub
_____________________________________________________________________________________________

Private Sub CommandButton1_Click()

c = Val(TextBox1.Text)
mi = ComboBox1.Text
mc = ComboBox2.Text

If ComboBox1.Text = "Dólares N.A." Then
moneda = 2.582
End If

If ComboBox1.Text = "Euros" Then
moneda = 3.357
End If

If ComboBox1.Text = "Yenes" Then
moneda = 0.027
End If

If ComboBox1.Text = "Nuevos Soles" Then
moneda = 1
End If

If ComboBox2.Text = "Dólares N.A." Then
vmc = 2.582
End If

If ComboBox2.Text = "Euros" Then
vmc = 3.357
End If

If ComboBox2.Text = "Yenes" Then
vmc = 0.027
End If

If ComboBox2.Text = "Nuevos Soles" Then
vmc = 1
End If

cc = moneda * c / vmc

TextBox2.Text = cc
TextBox3.Text = ComboBox2.Text
End Sub

____________________________________________________________________________________________________

2 comentarios

  1. muy buen ejemplo, has probado con la funcion buscarv... como para emplear una base de datos de oficina... bajo el mismo concepto que se ha planteado....

  2. Exelente

Deja una respuesta

Los campos requeridos estan marcados con *.