You are on page 1of 14

Controles de formulario en Excel

Los controles de formulario en Excel son objetos que podemos colocar dentro de una hoja de nuestro libro, o dentro de un formulario de usuario en VBA, y nos darán funcionalidad adicional para interactuar mejor con los usuarios y tener un mejor control sobre la información.

Podemos utilizar estos controles para ayudar a los usuarios a seleccionar elementos de una lista predefinida o permitir que el usuario inicie una macro con tan solo pulsar un botón. Los controles de formulario en Excel se encuentran dentro de la ficha Programador dentro del grupo Controles. Solamente pulsa el botón Insertar y observarás cada uno de ellos:

Controles de formulario en Excel Los controles de formulario en Excel son objetos que podemos colocar

Justo por debajo de los controles de formulario podrás observar el grupo de controles ActiveX pero sus diferencias y similitudes las discutiremos en otro artículo. Por ahora nos enfocaremos solamente en los controles de formulario.

¿Cómo insertar un control de formulario en Excel?

Para insertar cualquiera de los controles de formulario debes seleccionarlo del menú desplegable y hacer clic sobre la hoja de Excel

arrastrando el borde para “dibujar” el contorno del control. Observa este procedimiento.

arrastrando el borde para “dibujar” el contorno del control. Observa este procedimiento. Los diferentes controles de

Los diferentes controles de formulario

Existen diferentes tipos de controles de formulario en Excel que ofrecen diversos tipos de funcionalidad e interacción con el usuario. Desde una simple etiqueta hasta controles que permiten una selección múltiple de sus opciones. A continuación una breve descripción de cada uno de ellos.

Barra de desplazamiento. Al hacer clic en las flechas se va desplazando la barra dentro de un intervalo predefinido.

Botón. El botón nos permite ejecutar una macro al momento de hacer clic sobre él.

Botón de opción. Nos permite una única selección dentro de un conjunto de opciones.

Casilla de verificación. Permite la selección o no selección de una opción.

Control de número. Nos ayuda a aumentar o disminuir un valor numérico.

Cuadro combinado. Es una combinación de un cuadro de texto con un cuadro de lista.

Cuadro de grupo. Agrupa varios controles dentro de un rectángulo.

Cuadro de lista. Muestra una lista de valores de los cuales podemos elegir una sola opción o múltiples opciones de acuerdo a la configuración del control.

Etiqueta. Permite especificar un texto o breves instrucciones en el formulario.

Controles de formulario no disponibles en Excel

2010

Los controles de formulario han estado presentes por varias versiones de Excel, sin embargo a partir de Excel 2010 existen algunos controles que ya no pueden ser utilizados dentro de las hojas como lo son el Campo de texto, el Cuadro combinado de lista y el Cuadro combinado desplegable, sin embargo podremos alcanzar funcionalidad similar utilizando controles ActiveX.

Los controles ActiveX son un tipo de controles que nos permiten agregar funcionalidad de formularios a nuestros libros de Excel. Existe otro tipo de controles que es conocido como Controles de formulario y que tienen una funcionalidad similar, sin embargo existen algunas diferencias entre ambos tipos.

Controles ActiveX y controles de formulario

Los controles de formulario fueron introducidos desde la versión 4 de Excel y por lo tanto han estado presentes en la aplicación por más tiempo que los controles ActiveX los cuales comenzaron a ser utilizados a partir de Excel 97. Ya que los controles ActiveX fueron introducidos posteriormente ofrecen más posibilidades de configuración y formato que los controles de formulario. Ambos tipos de controles se encuentran en la ficha Programador.

La diferencia más significativa entre ambos es la manera en como podemos obtener información de los

La diferencia más significativa entre ambos es la manera en como podemos obtener información de los controles al momento de interactuar con el usuario. Los controles de formulario solamente responderán después de que el usuario ha interactuado con ellos, como después de haber pulsado el botón. Por el contrario, los controles ActiveX responden de manera continua a las acciones del usuario lo cual nos permite realizar acciones como cambiar el tipo de puntero del mouse que se muestra al colocar el puntero del ratón sobre el botón.

Propiedades de los controles ActiveX

A diferencia de los controles de formulario, los controles ActiveX tienen una serie de propiedades que podemos configurar pulsando el botón Propiedades que se encuentra dentro del grupo Controles de la ficha Programador.

La diferencia más significativa entre ambos es la manera en como podemos obtener información de los

Antes de poder ver las propiedades de un control ActiveX debemos pulsar el botón Modo Diseño el cual nos permitirá seleccionar el control y posteriormente ver sus propiedades. Cada tipo de control ActiveX mostrará una ventana de Propiedades con sus propias características. A continuación un ejemplo de la ventana Propiedades para un botón de comando ActiveX:

Controles ActiveX con subrutinas VBA Otra diferencia entre los controles de formulario y los controles ActiveX

Controles ActiveX con subrutinas VBA

Otra diferencia entre los controles de formulario y los controles ActiveX es que los primeros pueden tener asignada una macro y al hacer clic sobre el control de formulario se iniciará la ejecución de dicha macro.

Los controles ActiveX no tienen asignada una macro explícitamente sino que podemos asignar código VBA para cada evento del control. Un evento de un control ActiveX puede ser el evento de hacer clic sobre el control, el evento de hacer doble clic, el evento de obtener el foco sobre el control ActiveX, entre otros eventos más. Para asignar código a uno de los eventos de un control ActiveX solamente debemos hacer clic derecho sobre él y seleccionar la opción Ver código.

Esto mostrará el <a href=Editor de Visual Basic con una subrutina para el evento Click() donde podremos escribir nuestro código. En la lista desplegable de la derecha podemos observar la lista de eventos disponibles para nuestro control ActiveX y para los cuales podemos escribir código VBA. Al seleccionar cualquiera de dichos eventos se insertará una nueva subrutina que podremos utilizar. Son precisamente la gran cantidad de eventos disponibles para los controles ActiveX lo que los hace controles muy poderosos que podemos utilizar en nuestros formularios. Otra ventaja de los controles ActiveX en Excel En la versión de Excel 2010 algunos controles de formulario han dejado de ser soportados y no podemos utilizarlos más en nuestras hojas. Ese es el caso del control de formulario conocido como campo de texto. Sin " id="pdf-obj-5-2" src="pdf-obj-5-2.jpg">

Esto mostrará el Editor de Visual Basic con una subrutina para el evento Click() donde podremos escribir nuestro código.

Esto mostrará el <a href=Editor de Visual Basic con una subrutina para el evento Click() donde podremos escribir nuestro código. En la lista desplegable de la derecha podemos observar la lista de eventos disponibles para nuestro control ActiveX y para los cuales podemos escribir código VBA. Al seleccionar cualquiera de dichos eventos se insertará una nueva subrutina que podremos utilizar. Son precisamente la gran cantidad de eventos disponibles para los controles ActiveX lo que los hace controles muy poderosos que podemos utilizar en nuestros formularios. Otra ventaja de los controles ActiveX en Excel En la versión de Excel 2010 algunos controles de formulario han dejado de ser soportados y no podemos utilizarlos más en nuestras hojas. Ese es el caso del control de formulario conocido como campo de texto. Sin " id="pdf-obj-5-8" src="pdf-obj-5-8.jpg">

En la lista desplegable de la derecha podemos observar la lista de eventos disponibles para nuestro control ActiveX y para los cuales podemos escribir código VBA. Al seleccionar cualquiera de dichos eventos se insertará una nueva subrutina que podremos utilizar. Son precisamente la gran cantidad de eventos disponibles para los controles ActiveX lo que los hace controles muy poderosos que podemos utilizar en nuestros formularios.

Otra ventaja de los controles ActiveX en Excel

En la versión de Excel 2010 algunos controles de formulario han dejado de ser soportados y no podemos utilizarlos más en nuestras hojas. Ese es el caso del control de formulario conocido como campo de texto. Sin

embargo, dentro de la lista de controles ActiveX seguimos teniendo disponible el control llamado Cuadro de texto lo cual puede hacer atractiva la opción de utilizar controles ActiveX en Excel en lugar de controles de formulario.

Los formularios en Excel son un método para ingresar datos a nuestras hojas y son de mucha utilidad porque nos ayudan a evitar errores en la captura de información. Podemos comparar los formularios de Excel con los formularios impresos en papel.

¿Qué es un formulario en Excel?

Seguramente has llenado un formulario en papel, tal vez cuando has acudido a alguna oficina de gobierno para realizar un trámite, así que sabes de lo que estoy hablando. Estos formularios contienen instrucciones precisas de lo que debes escribir y contienen los recuadros necesarios para ingresar los datos.

Los formularios en Excel no son tan diferentes de los formularios impresos ya que de igual manera proveen de los espacios necesarios para ingresar los datos. Los formularios en Excel utilizan objetos especiales conocidos como controles de formulario que son precisamente los que nos permiten agregar campos de texto, listas, botones de opción entre otras cosas más.

Tipos de formularios en Excel

Cuando hablamos de formularios en Excel, es necesario recordar que podemos crear tres tipos diferentes de formularios:

Formulario de datos.

Hojas de cálculo con controles de formulario o controles ActiveX.

Formularios de usuario en VBA.

A continuación describiré brevemente cada uno de ellos.

Formulario de datos

A través de un formulario de datos podemos mostrar al usuario la información de una sola fila de una tabla. En este formulario se puede hacer la edición de la información e inclusive crear un nuevo registro para la tabla.

A través de un formulario de datos podemos mostrar al usuario la información de una solaAgregar filas a una tabla de Excel . Hoja de cálculo con controles de formulario Ya que las celdas de una hoja de Excel nos sirven para introducir información, podemos pensar en una ho j a como un gran formulario. De esta manera, si agregamos controles de formulario a nuestra hoja podremos crear formularios de entrada de datos muy útiles. Por ejemplo, podemos agregar a nuestra hoja un control de cuadro de lista para facilitar la selección de los elementos. " id="pdf-obj-7-6" src="pdf-obj-7-6.jpg">

Excel puede generar automáticamente un formulario de datos para cualquier tabla. Un detalle importante que debes saber sobre los formularios de datos es que si una celda contiene una fórmula no podrás modificar dicha fórmula mediante el formulario sino que solamente se mostrará el resultado del cálculo sin poder editarlo.

Para saber más sobre este tema consulta el artículo: Agregar filas a una tabla de Excel.

Hoja de cálculo con controles de formulario

Ya que las celdas de una hoja de Excel nos sirven para introducir información, podemos pensar en una hoja como un gran formulario. De esta manera, si agregamos controles de formulario a nuestra hoja podremos crear formularios de entrada de datos muy útiles. Por ejemplo, podemos agregar a nuestra hoja un control de cuadro de lista para facilitar la selección de los elementos.

De igual manera podemos agregar botones, cuadros combinados, casillas de verificación y otros controles más queEditor de Visual Basic y administrados desde código VBA. Una vez que se ha creado el formulario de usuario podemos arrastrar y soltar los controles que están disponibles desde el Cuadro de herramientas : " id="pdf-obj-8-2" src="pdf-obj-8-2.jpg">

De igual manera podemos agregar botones, cuadros combinados, casillas de verificación y otros controles más que nos ayudarán a crear formularios avanzados.

Formulario de usuario en VBA

Los formularios de usuario en VBA, también conocidos como UserForm, son cuadros de diálogo que hacen uso de controles de formulario para solicitar información al usuario. Estos formularios son creados desde elEditor de Visual Basic y administrados desde código VBA.

De igual manera podemos agregar botones, cuadros combinados, casillas de verificación y otros controles más queEditor de Visual Basic y administrados desde código VBA. Una vez que se ha creado el formulario de usuario podemos arrastrar y soltar los controles que están disponibles desde el Cuadro de herramientas : " id="pdf-obj-8-16" src="pdf-obj-8-16.jpg">

Una vez que se ha creado el formulario de usuario podemos arrastrar y soltar los controles que están disponibles desde el Cuadro de herramientas:

Si quieres crear un formulario básico en VBA, sigue los pasos descritos en el artículo <aFormularios en VBA . Los diferentes tipos de formularios en Excel nos evitarán dolores de cabeza ya que podremos tener cierto grado de control sobre el ingreso de datos que otras personas realizan sobre nuestras hojas de Excel. Los formularios en VBA no son más que un cuadro de diálogo de Excel donde podremos colocar controles que nos ayudarán a solicitar información del usuario. Podremos colocar cajas de texto, etiquetas, cuadros combinados, botones de comando, etc. Crear un formulario en Excel " id="pdf-obj-9-2" src="pdf-obj-9-2.jpg">

Si quieres crear un formulario básico en VBA, sigue los pasos descritos en el artículo Formularios en VBA.

Los diferentes tipos de formularios en Excel nos evitarán dolores de cabeza ya que podremos tener cierto grado de control sobre el ingreso de datos que otras personas realizan sobre nuestras hojas de Excel.

Los formularios en VBA no son más que un cuadro de diálogo de Excel donde podremos colocar controles que nos ayudarán a solicitar información del usuario. Podremos colocar cajas de texto, etiquetas, cuadros combinados, botones de comando, etc.

Crear un formulario en Excel

Los formularios de Excel son creados desde el Editor de Visual Basic donde debemos seleccionar la opción de menú Insertar y posteriormente la opción UserForm.

Los formularios de Excel son creados desde el Editor de Visual Basic donde debemos seleccionar la

Inmediatamente se mostrar un formulario en blanco y de igual manera podrás observar el Cuadro de herramientas:

Los formularios de Excel son creados desde el Editor de Visual Basic donde debemos seleccionar la

Si no ves el Cuadro de herramientas puedes seleccionar el menú Ver y la opción 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:

Si no ves el Cuadro de herramientas puedes seleccionar el menú Ver y la opción Cuadro

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 podrás hacer la modificación. De igual manera el texto desplegado en los botones de comando se modifica en su propiedad Caption.

Código para el botón Cancelar

El botón cancelar cerrará el formulario sin guardar la información capturada en ningún lugar. El código que debemos utilizar es el siguiente:

Private Sub CommandButton2_Click()

Unload Me

 

End Sub

Para agregar este código puedes hacer doble clic sobre el control. La sentencia “Unload Me” cerrará elformulario.

Código para el botón Aceptar

A diferencia del botón Cancelar, el botón Aceptar colocará los datos de las cajas de texto en las celdas A1, B1 y C1. El código 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 botón Aceptar se transferirán los valores de los controles TextBox hacia las celdas de la Hoja1.

Botón para abrir formulario

Para facilitar la apertura del formulario puedes colocar un botón ActiveX en la hoja con el siguiente código:

Private Sub CommandButton1_Click()

UserForm1.Show

 

End Sub

 

Probar el formulario

Observa cómo cada uno de los botones realiza la acción correcta al pulsarlos: