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.
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.
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:
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
____________________________________________________________________________________________________
14/04/2013 a las 12:27 pm
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....
14/09/2022 a las 10:10 am
Exelente