Hojas de cálculo en Excel - página principal

Euroconversor

Aunque hace ya muchos años que entró en vigor el euro, son muchas las personas, que cuando ven un precio o un importe en euros, hacen mentalmente la conversión a pesetas. ¿Por qué?. Pues porque han sido muchos años los que hemos convivido con la peseta, como para que nos olvidemos de ella de golpe. Especialmente, es la gente mayor la que más dificultades tiene para saber realmente el "valor" de un precio o de un importe en euros.

Para facilitar esta tarea de conversión -y también, porque esta semana no estaba my inspirado, y he tenido que echar mano del baúl de los recuerdos-, vamos a programar un sencillo conversor que nos servirá para convertir una cantidad en pesetas, a su contravalor en euros. De la misma forma, también podremos convertir una cifra en euros, a su contravalor en pesetas. Con alguna ligera adaptación, esto también nos puede servir, para convertir diferentes monedas que tengan una relación de cambio fija.

Necesitaremos crear un UserForm (un formulario de usuario), donde insertaremos:

  • 3 etiquetas de texto (Label), de las cuales, una de ellas será para introducir el texto "Introduce una cantidad". Otra de las etiquetas servirá mostrar el contravalor calculado de la moneda que deseamos convertir (a esta etiqueta, le daremos color azul celeste, para que podamos localizarla en el UserForm, y para darle un toque distinto), y la tercera etiqueta servirá para mostrar el texto "Ptas" o "Euros". A estas etiquetas les pondremos por nombre Texto1, Texto2, y Texto3, respectivamente

  • 1 cuadro de texto (TextBox), al que le pondremos por nombre Cantidad.

  • 2 botones de opción (OptionButton), de los cuales, uno servirá para convertir de euros a pesetas, y el otro de pesetas a euros. Les pondremos por nombre DeEurosAPtas, y DePtasAEuros, respectivamente.

  • 1 imagen de una moneda de 1 euro y de 1 peseta (todo ello en una misma imagen). Le pondremos por nombre Image1

  • 1 CommandButton, para mostrar el mensaje de "Cerrar ventana", y al que le pondremos por nombre Cerrar.


Al UserForm, le daremos el nombre de Euroconversor, para lo cual simplemente tendremos que introducir ese nombre en la propiedad "Nombre", tal y como figura en la siguiente imagen (ver la zona remarcada en rojo):


Para darle nombre al resto de elementos (TextBox, OptionButton, etc.), desde el modo VBA, cliquearemos encima de cada uno de los
Para que se ejecute el macro, hemos habilitado un botón en la hoja de cálculo. Cada vez que se cliquee sobre el mismo, se nos cargará el UserForm:


Para que se cargue el UserForm, en un módulo de VBA, crearemos este macro:

Sub Cargar_conversor()
'Que se cargue el UserForm del Euroconversor
EurosPesetas.Show
End Sub

Para que funcione el euroconversor, deberemos añadir todos estos códigos que a continuación os incluyo. Para colocar el código, deberéis cliquear en el UserForm, cuando lo tengáis a la vista, desde el modo VBA (ver la primera imagen que hay en este artículo).

Para convertir de euros a pesetas, añadiremos esto (en el código correspondiente al formulario):

Private Sub DeEurosAPtas_Click()
'Si hay errores, que continúe
On Error Resume Next
'Si la cantidad está vacía...
If Cantidad = Empty Then
'ponemos el foco en el textbox
'al que hemos llamado Cantidad

Cantidad.SetFocus
'mostramos un mensaje
MsgBox (Chr(13) + " Por favor, introduce una cantidad. " _
+ Chr(13) + Chr(13)), vbOKOnly, " Datos incompletos"
End If
'Si Cantidad no es numérica
If Not IsNumeric(Cantidad) Then
'eliminamos la entrada
Cantidad = Empty
'ponemos el foco en el textbox
'al que hemos llamado Cantidad

Cantidad.SetFocus
Else
'si es numérica,le damos formato con 2 decimales
Cantidad = Format(Cantidad, "##,##0.00")
'que ponga el texto "Euros", en la etiqueta correspondiente
Texto3.Caption = "Euros"
'le damos color negro a la cifra convertida,
'es decir, al resultado obtenido

Texto2.ForeColor = RGB(0, 0, 0)
'que añada el texto "Ptas", al resultado
Texto2.Caption = Format(Cantidad * 166.386, "#,##0") & " Ptas"
End If
End Sub

Para convertir de pesetas a euros, añadiremos esto (en el código correspondiente al formulario):

Private Sub DePtasAEuros_Click()
'Si hay errores, que continúe
On Error Resume Next
'Si la cantidad está vacía...
If Cantidad = Empty Then
'ponemos el foco en el textbox
'al que hemos llamado Cantidad

Cantidad.SetFocus
'mostramos un mensaje
MsgBox (Chr(13) + " Por favor, introduce una cantidad. " _
+ Chr(13) + Chr(13)), vbOKOnly, " Datos incompletos"
End If
'Si Cantidad no es numérica
If Not IsNumeric(Cantidad) Then
'eliminamos la entrada
Cantidad = Empty
'ponemos el foco en el textbox
'al que hemos llamado Cantidad

Cantidad.SetFocus
Else
'si es numérica,le damos formato sin decimales
Cantidad = Format(Cantidad, "##,##0")
'que ponga el texto "Euros", en la etiqueta correspondiente
Texto3.Caption = "Ptas"
'le damos color azul a la cifra convertida,
'es decir, al resultado obtenido

Texto2.ForeColor = RGB(23, 48, 141)
'que añada el texto "Ptas", al resultado,
'y con formato de 2 decimales

Texto2.Caption = Format(Cantidad / 166.386, "#,##0.00") & " Euros"
End If
End Sub

Cada vez que cliqueemos en el TextBox llamado Cantidad, reiniciaremos los datos del UserForm. El código que necesitaremos es este:

Private Sub Cantidad_Enter()
'Si hay errores, que continúe
On Error Resume Next
'que elimine todas las entradas
Cantidad = Empty
Texto2.Caption = Empty
Texto3.Caption = Empty
'desmarcamos las opciones de los botones
DeEurosAPtas.Value = False
DePtasAEuros.Value = False
End Sub

Y finalmente, para cerrar el UserForm, si cliqueamos en el botón habilitado a tal efecto, necesitaremos este código:

Private Sub cerrar_Click()
'Si hay errores, que continúe
On Error Resume Next
'Descargamos el formulario de la memoria
Unload Me
End Sub

Aquí os dejo dos pantallazos tras introducir la cifra de 1.275. Primero convertiremos esa cifra a pesetas, y en la otra imagen, convertiremos esa cifra, de pesetas a euros:



Desde aquí podéis descargar el fichero de excel, con el ejemplo que os presento en este artículo.



0 comentarios: