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 VBA.

Creación del formulario

Es probable que hayas iniciado a programar en VBA pero aún no hayas utilizado los formularios, así que será conveniente dar una breve definición antes de comenzar. Un formulario VBA es un cuadro de diálogo donde agregamos diversos tipos de controles como botones de comando, cajas de texto, casillas de verificación, y otros controles más que serán de utilidad para obtener información de un usuario ya sea para procesarla y devolver algún 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 verás que no es tan complicado utilizarlos. Para iniciar nuestro ejemplo agregaremos un nuevo formulario de la siguiente manera. En la ficha Programador pulsa el botón Visual Basic y se mostrará el Editor de VBA. Haz clic derecho sobre VBA Project  y selecciona la opción Insertar > UserForm:

Cómo insertar un formulario

De inmediato el panel principal mostrará el formulario recién creado así como un pequeño cuadro de diálogo con el título Cuadro de herramientas el cual contiene los controles que podemos agregar al formulario.

Ejemplo de formulario VBA en Excel

El Cuadro de herramientas tiene un botón para cada tipo de control como etiqueta, cuadro de texto, cuadro combinado, cuadro de lista, casilla de verificación, botón de opción, etc. Para agregar un control al formulario es necesario hacer clic en el botón correspondiente dentro del Cuadro de herramientas y posteriormente hacer clic dentro del formulario. Otra manera de agregar un control al formulario es pulsar el botón 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 botón de comando de manera que nuestro formulario quede de la siguiente manera:

Ejemplo de formulario con controles

Para cambiar el texto de la etiqueta y del botón 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 también puedes hacer clic derecho sobre alguno de los controles y seleccionar la opción Propiedades lo cual mostrará la ventana:

Ventana Propiedades de un control de formulario

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 botón 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:

Formulario VBA con controles en Excel 2010

En la imagen anterior puedes notar que también he cambiado en el título del formulario y lo puedes hacer modificando también 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 código VBA. Para  especificar estas opciones debemos hacer doble clic sobre el formulario y seleccionar el código para el procedimiento Initialize donde colocaremos las instrucciones necesarias para agregar las opciones:

Código para agregar opciones a un cuadro de lista

La instrucción AddItem es la que nos permite agregar un nuevo elemento al cuadro de lista y la instrucción ListIndex nos permite indicar el valor que estará seleccionado al cargarse el formulario y que será la opción Celsius ya que es la primera opción de la lista y por lo tanto tiene asociado el índice cero.

Código del botón de comando

Finalmente agregaremos código VBA al botón de comando que será el encargado de hacer la conversión, solo haz doble clic sobre el botón para mostrar la ventana de código asociada. El código que colocaremos en el procedimiento Click será el siguiente:

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 validación dentro del código verifica que el cuadro de texto no esté vacío en cuyo caso desplegará un mensaje solicitando ingresar una temperatura y posteriormente sale de la subrutina. La segunda validación es para saber si el cuadro de lista tiene seleccionada la opción Celsius y por lo tanto hacer la conversión a Fahrenheit para mostrar el resultado. Por el contrario, si el cuadro de lista tiene seleccionada la opción Fahrenheit se hará la conversión a Celsius. Para probar el funcionamiento de nuestro formulario es suficiente con pulsar el botón Ejecutar que se encuentra en la barra de herramientas Estándar:

Botón ejecutar en la barra de herramientas del Editor VBA

Observa el comportamiento final del formulario:

Ejecución del formulario VBA en Excel

Ya que hemos terminado con la construcción del formulario y el código 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 botón de comando ActiveX desde la ficha Programador:

Botón de comando ActiveX

Al hacer doble clic sobre el botón se mostrará el código asociado al evento Click del botón y debemos colocar una sola instrucción:

Código VBA para cargar formulario

Con esto será suficiente para que al momento de pulsar el botón de la hoja de Excel se muestre el formulario VBA recién creado y podamos realizar la conversión 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 recién desarrollado descarga el libro de trabajo que contiene toda la solución.

Artículos relacionados
Introducción a las macros

24 comentarios en “Ejemplo de Formulario VBA en Excel

  1. Walter

    se te ha olvidado poner el código ;-)

    1. Moisés Ortíz Autor

      Gracias por la observación Walter. Saludos.

  2. angel marquez

    Sumamente importante este formulario, me gustaria saber mucho mas de esto

  3. Homero Guevara

    Falta el código VBA en el boton de instrucción de comando, no obstante ya lo ví cuando descargué el libro de trabajo, lo cual considero importante aclararlo en el ejemplo. Gracias por estos importantes tips para el uso de excel, se vuelve una herramienta valiosisima.
    Saludos cordiales

    1. Moisés Ortíz Autor

      Gracias Homero, ya he actualizado la publicación con el código que me faltó incluir. Saludos.

  4. Rafy Mejia

    Gracias moises esto es una maravilla en verdad aprecio tu aporte eres muy inteligente muchas gracias por tus aportes tan importantes

  5. EDUARDO

    Hola, no puedo habilitar el modo programador, en mi barra de herramientas, tengo excel 2010

    saludos.

  6. Horacio Carmona

    Gracias Moy, esta herramienta es muy valiosa gracias!!

  7. Juan Carlos García Maldonado

    Hola. Me acabo de incorporar a tu página y me parece muy interesante y magníficamente explicada. Somos una empresa de ingeniería de diseño y aunque excel no lo trabajamos a fondo creo que tu aportación nos será de interés. Creo que la mayoría de los usuarios nos quedamos en las cuatro funciones básicas cuando realmente el potencial que tiene es enorme.
    De nuevo gracias.

  8. Jorge

    Muy buenos comentarios y además el material que presentas es de primera, ¡Felicidades!

  9. Wagner Espina

    Buen aporte que nos das, ya que los formularios con su codigo nos ayudan a facilitar el uso de esta herramienta

  10. Sr Dario

    Esta pagina me encanta, gracias por tus aportes constantes.

  11. OSCAR

    un muy excelente ejemplo y aporte…. gracias por compartir la información

  12. Moises Pacheco

    Gracias Moy; son muy interesantes tus comentarios, te doy gracias en nombre de mi equipo de trabajo que recurrimos siempre a tus correos, un gran abrazo.-

  13. Julio Garcia

    Moisés, todos sus artículos son de una gran utilidad práctica. Estoy muy agradecido.

    Julio

  14. ezequiel

    buen aporte gracias por compartir

  15. SILVIA

    Gracias Moisés por cada una de las lecciones que puedes compartir a todos quienes nos interesa aprender más de Excel, segura estoy que Dios te bendice por eso y personalmente le doy las gracias por personas como Tú.
    Quiero saber si puedo adquirir el texto o módulo de Excel, ya que no he podido coleccionar todas las lecciones que hay en tú página.
    Mucho agradeceré si me ayudas en lo que te solicito.

    Tú amiga
    Silvia

    Muchas bendiciones.

    1. Moisés Ortíz Autor

      Hola Silvia, muchas gracias por tu comentario.
      Todos los artículos que he escrito desde hace 2 años están disponibles en esta página. Solo debes pulsar INICIO (en el menú superior) y al final de la página encontrarás el botón “Entradas previas” y podrás consultar todas las publicaciones.
      Recibe un saludo.

  16. Nerio Gonzalez

    La explicación y la visualización me han agradado y me motiva a seguir el blog, aporta mucho
    Gracias por el aporte

  17. Jonathan

    Gracias Moises por el aporte, excel es una excelente aplicacion, solo que soy un poco novato, quisiera saber de donde puedo descargar ese visual basic. Espero tu respuesta y gracias por tu dedicacion

    1. Moisés Ortíz Autor

      Hola Jonathan, no necesitas hacer ninguna descarga. El Editor de Visual Basic viene incluido en Excel y puedes acceder a él desde la ficha Programador. Si no sabes cómo mostrar esta ficha consulta el siguiente artículo:
      http://exceltotal.com/mostrar-la-ficha-programador/

  18. Wladimir

    excelente , me fue de mucha gran ayuda este articulo. Gracias Moisés.

  19. Jaime

    Excelente ejemplo de formularios, me fue muy útil. gracias.