6
Ejemplo de Formulario VBA en Excel En esta ocasión haremos un ejemplo básico de cómo utilizar un formulario VBA para desarrollar una mini-aplicación en Excel que realice la conversión de temperaturas entre grados Celsius y grados Fahrenheit. Este ejemplo será de gran ayuda para aquellos que comienzan en la programación !". Creación del formulario Es probable que hayas iniciado a programar en !" pero a#n no hayas utilizado los $ormularios% as& que será conveniente dar una breve de'nición antes de comenzar. (n $ormulario !" es un cuadro de diálogo donde agregamos diversos tipos de controles como botones de comando% cajas de texto% casillas de veri'cación% y otros controles más que serán de utilidad para obtener in$ormación de un usuario ya sea para procesarla y devolver alg#n resultado o simplemente almacenarla. )os $ormularios nos permiten crear aplicaciones en Excel para extender el uso y $uncionalidad de la herramienta y aunque su uso está $uertemente relacionado con los usuarios avanzados de Excel% pronto verás que no es tan complicado utilizarlos. *ara iniciar nuestro ejemplo agregaremos un nuevo $ormulario de la siguiente manera. En la 'cha *rogramador pulsa el botón isual !asic y se mostrará el Editor de !". +az clic derecho sobre VBA Project y selecciona la opción ,nsertar (serForm

Formulario VBA en Excel

Embed Size (px)

DESCRIPTION

sexo, posturas, anal

Citation preview

Ejemplo de Formulario VBA en ExcelEn esta ocasin haremos un ejemplo bsico de cmo utilizar unformulario VBApara 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 formularioEs 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. Unformulario VBAes 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 laficha Programadorpulsa el botn Visual Basic y se mostrar elEditor de VBA. Haz clic derecho sobreVBA 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 ttuloCuadro de herramientasel cual contiene los controles que podemos agregar al formulario.

ElCuadro de herramientastiene 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 delCuadro de herramientasy 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 formularioPara 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 llamadaCaptiony eso lo haremos desde la ventanaPropiedades. Si esta ventana no se muestra actualmente en el Editor de Visual Basic puedes seleccionarla desde el menVero tambin puedes hacer clic derecho sobre alguno de los controles y seleccionar la opcinPropiedadeslo cual mostrar la ventana:

Encuentra la propiedadCaptiony al lado derecho ingresa el valor de dicha propiedad para el control seleccionado. En la imagen anterior estamos viendo las propiedades de la etiqueta llamadaLabel1y por lo tanto he colocado el textoTemperatura. 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 propiedadCaptiontendremos 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 propiedadCaptiondel formulario mismo.Agregar opciones al cuadro de listaUn 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 procedimientoInitializedonde colocaremos las instrucciones necesarias para agregar las opciones:

La instruccinAddItemes la que nos permite agregar un nuevo elemento al cuadro de lista y la instruccinListIndexnos 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 comandoFinalmente 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:12345678910111213141516171819Private Sub CommandButton1_Click()'Validar que se ha especificado una temperaturaIf TextBox1.Value = "" ThenMsgBox "Debes especificar una temperatura"Exit SubEnd If'Si es Celsius convertir a FahrenheitIf ComboBox1.ListIndex = 0 Thentemperatura = TextBox1.Value * 1.8 + 32MsgBox temperatura & " Fahrenheit"'Si es Fahrenheit convertir a CelsiusElsetemperatura = (TextBox1.Value - 32) * 5 / 9MsgBox temperatura & " Celsius"End IfEnd 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 ExcelPara 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 elformulario VBArecin 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.Para probar por tu propia cuenta el ejercicio recin desarrolladodescarga el libro de trabajoque contiene toda la solucin.