Sunteți pe pagina 1din 12

Ejemplo de Formulario

VBA en Excel
En esta ocasin haremos un ejemplo bsico de cmo utilizar
un formulario VBA para desarrollar una mini-aplicacin en Excel que
realice la conversin de temperaturas entre grados Celsius y grados
Fahrenheit. Este ejemplo ser de gran ayuda para aquellos que
comienzan en la programacin VBA.

Creacin del formulario


Es probable que hayas iniciado a programar en VBA pero an no hayas
utilizado los formularios, as que ser conveniente dar una breve
definicin antes de comenzar. Un formulario VBA es un cuadro de
dilogo donde agregamos diversos tipos de controles como botones de
comando, cajas de texto, casillas de verificacin, y otros controles ms
que sern de utilidad para obtener informacin de un usuario ya sea para
procesarla y devolver algn resultado o simplemente almacenarla.

Los formularios nos permiten crear aplicaciones en Excel para extender


el uso y funcionalidad de la herramienta y aunque su uso est
fuertemente relacionado con los usuarios avanzados de Excel, pronto
vers que no es tan complicado utilizarlos. Para iniciar nuestro ejemplo
agregaremos un nuevo formulario de la siguiente manera. En la ficha
Programador pulsa el botn Visual Basic y se mostrar el Editor de VBA.
Haz clic derecho sobre VBA Project y selecciona la opcin Insertar >
UserForm:
De inmediato el panel principal mostrar el formulario recin creado as
como un pequeo cuadro de dilogo con el ttulo Cuadro de
herramientas el cual contiene los controles que podemos agregar al
formulario.
El Cuadro de herramientas tiene un botn para cada tipo de control como
etiqueta, cuadro de texto, cuadro combinado, cuadro de lista, casilla de
verificacin, botn de opcin, etc. Para agregar un control al formulario
es necesario hacer clic en el botn correspondiente dentro del Cuadro de
herramientas y posteriormente hacer clic dentro del formulario. Otra
manera de agregar un control al formulario es pulsar el botn del control
y arrastrarlo sobre el formulario.

Agregar controles de formulario


Para nuestro ejemplo necesitamos agregar una etiqueta, un cuadro de
texto, un cuadro de lista y un botn de comando de manera que nuestro
formulario quede de la siguiente manera:
Para cambiar el texto de la etiqueta y del botn de comando debemos
modificar la propiedad llamada Caption y eso lo haremos desde la
ventana Propiedades. Si esta ventana no se muestra actualmente en el
Editor de Visual Basic puedes seleccionarla desde el men Ver o
tambin puedes hacer clic derecho sobre alguno de los controles y
seleccionar la opcin Propiedades lo cual mostrar la ventana:

Encuentra la propiedad Caption y al lado derecho ingresa el valor de


dicha propiedad para el control seleccionado. En la imagen anterior
estamos viendo las propiedades de la etiqueta llamada Label1 y por lo
tanto he colocado el texto Temperatura. Para hacer el cambio de esta
propiedad para el botn de comando solo debes seleccionarlo de la lista
desplegable que se encuentra en la parte superior de la misma
ventana Propiedades. Al terminar el cambio de la
propiedad Caption tendremos el formulario de la siguiente manera:
En la imagen anterior puedes notar que tambin he cambiado en el ttulo
del formulario y lo puedes hacer modificando tambin la
propiedad Caption del formulario mismo.

Agregar opciones al cuadro de lista


Un ltimo cambio que haremos a los controles es agregar los valores al
cuadro de lista. Para nuestro ejemplo solo necesitamos los valores
Celsius y Fahrenheit pero no existe una propiedad del control que nos
permita hacerlo sino que debemos utilizar cdigo VBA. Para especificar
estas opciones debemos hacer doble clic sobre el formulario y
seleccionar el cdigo para el procedimiento Initialize donde colocaremos
las instrucciones necesarias para agregar las opciones:

La instruccin AddItem es la que nos permite agregar un nuevo elemento


al cuadro de lista y la instruccin ListIndex nos permite indicar el valor
que estar seleccionado al cargarse el formulario y que ser la opcin
Celsius ya que es la primera opcin de la lista y por lo tanto tiene
asociado el ndice cero.

Cdigo del botn de comando


Finalmente agregaremos cdigo VBA al botn de comando que ser el
encargado de hacer la conversin, solo haz doble clic sobre el botn para
mostrar la ventana de cdigo asociada. El cdigo que colocaremos en el
procedimiento Click ser el siguiente:
Private Sub CommandButton1_Click()
1
2 'Validar que se ha especificado una temperatura
3 If TextBox1.Value = "" Then
4 MsgBox "Debes especificar una temperatura"
5 Exit Sub
End If
6
7 'Si es Celsius convertir a Fahrenheit
8 If ComboBox1.ListIndex = 0 Then
temperatura = TextBox1.Value * 1.8 + 32
9 MsgBox temperatura & " Fahrenheit"
10 'Si es Fahrenheit convertir a Celsius
11 Else
12 temperatura = (TextBox1.Value - 32) * 5 / 9
MsgBox temperatura & " Celsius"
13 End If
14
15 End Sub
16
17
18
19

La primera validacin dentro del cdigo verifica que el cuadro de texto no


est vaco en cuyo caso desplegar un mensaje solicitando ingresar una
temperatura y posteriormente sale de la subrutina. La segunda validacin
es para saber si el cuadro de lista tiene seleccionada la opcin Celsius y
por lo tanto hacer la conversin a Fahrenheit para mostrar el resultado.
Por el contrario, si el cuadro de lista tiene seleccionada la opcin
Fahrenheit se har la conversin a Celsius. Para probar el
funcionamiento de nuestro formulario es suficiente con pulsar el botn
Ejecutar que se encuentra en la barra de herramientas Estndar:

Observa el comportamiento final del formulario:


Ya que hemos terminado con la construccin del formulario y el cdigo
necesario para su funcionamiento, podemos dar un paso adicional para
llamar el formulario desde una hoja de Excel.

Cargar formulario desde una hoja de Excel


Para cargar un formulario desde una hoja de Excel ser suficiente con
agregar un botn de comando ActiveX desde la ficha Programador:

Al hacer doble clic sobre el botn se mostrar el cdigo asociado al


evento Click del botn y debemos colocar una sola instruccin:

Con esto ser suficiente para que al momento de pulsar el botn de la


hoja de Excel se muestre el formulario VBA recin creado y podamos
realizar la conversin de temperaturas. Aunque este es un ejemplo muy
sencillo espero que sea til para darte cuenta del gran potencial que
existe en el uso de formularios en Excel.

Formularios en VBA
Crear un formulario en Excel
Los formularios de Excel son creados desde el Editor de Visual Basic
donde debemos seleccionar la opcin de men Insertar y posteriormente
la opcin UserForm.

Inmediatamente se mostrar un formulario en blanco y de igual manera


podrs observar el Cuadro de herramientas:
Si no ves el Cuadro de herramientas puedes seleccionar el men Ver y la
opcin Cuadro de herramientas.

Agregar controles al formulario


Para agregar un control al formulario debes seleccionarlo del Cuadro de
herramientas y dibujarlo sobre el formulario. En mi formulario he
agregado etiquetas y cuadros de texto as como un par de botones de
comando:
El texto de las etiquetas se modifica en la propiedad llamada Caption.
Para realizar este cambio solamente selecciona el control y se mostrar
la ventana de Propiedades donde podrs hacer la modificacin. De igual
manera el texto desplegado en los botones de comando se modifica en
su propiedad Caption.

Cdigo para el botn Cancelar


El botn cancelar cerrar el formulario sin guardar la informacin
capturada en ningn lugar. El cdigo que debemos utilizar es el
siguiente:

Private Sub CommandButton2_Click()

Unload Me

End Sub

Para agregar este cdigo puedes hacer doble clic sobre el control. La
sentencia Unload Me cerrar el formulario.

Cdigo para el botn Aceptar


A diferencia del botn Cancelar, el botn Aceptar colocar los datos de
las cajas de texto en las celdas A1, B1 y C1. El cdigo utilizado es el
siguiente:
Private Sub CommandButton1_Click()

Worksheets("Hoja1").Range("A1").Value = Me.TextBox1.Value

Worksheets("Hoja1").Range("B1").Value = Me.TextBox2.Value

Worksheets("Hoja1").Range("C1").Value = Me.TextBox3.Value

End Sub

Al pulsar el botn Aceptar se transferirn los valores de los


controles TextBox hacia las celdas de la Hoja1.

Botn para abrir formulario


Para facilitar la apertura del formulario puedes colocar un botn ActiveX
en la hoja con el siguiente cdigo:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Probar el formulario
Observa cmo cada uno de los botones realiza la accin correcta al
pulsarlos:

S-ar putea să vă placă și