Sei sulla pagina 1di 6

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 llamadaCaption 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 ventanaPropiedades. 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 instruccinListIndex 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:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Private Sub CommandButton1_Click() 'Validar que se ha especificado una temperatura If TextBox1.Value = "" Then MsgBox "Debes especificar una temperatura" Exit Sub End If 'Si es Celsius convertir a Fahrenheit If ComboBox1.ListIndex = 0 Then temperatura = TextBox1.Value * 1.8 + 32 MsgBox temperatura & " Fahrenheit" 'Si es Fahrenheit convertir a Celsius Else temperatura = (TextBox1.Value - 32) * 5 / 9 MsgBox temperatura & " Celsius" End If End Sub

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.

Potrebbero piacerti anche