En esta oportunidad aprenderemos como hacer formularios en Excel de dos maneras.

1.- Utilizaremos las funciones de formularios que trae Excel sin necesidad de tener ningún conocimiento de programación

2.-Utilizaremos Visual Basic, una alternativa un poco más compleja en la que programaremos y customizaremos nuestro formulario a nuestro gusto.

Guía en Video:

Video donde explicamos de una forma dinámica “Como crear formularios en Excel” 😉

La función de formulario que Excel trae predeterminadamente cumple su función, pero suele generar muchos problemas debido al mal uso que le dan algunas personas. Hay personas que pretenden gestionar su empresa por completo con esta herramienta lo cual termina por acarrear diversos problemas a la larga. El manejo de inventario, de registros y de libros de cuentas es bastante delicado por lo que recomendamos utilizar softwares especializados para ese tipo de tareas y utilizar la herramienta de formularios para cosas más sencillas.

Formularios sin Programación

Esta es una forma más accesible de armar un formulario, Excel nos proporciona la herramienta para introducir formularios desde su edición del 2013.  En este caso queremos almacenar la información referente a las personas que quieran ser inscritas en uno de nuestros cursos. Queremos almacenar el nombre, apellido, el correo, la fecha en la que se inscribió en el curso y el estado del pago.

Para empezar, insertamos una tabla presionando Ctrl + T o dirigiéndonos a Insertar->Tabla en el menú superior. Introducimos los datos de nuestro primer elemento a mano. Una vez tenemos nuestra tabla podemos proceder con el siguiente paso.

Después de tener nuestra tabla tenemos que hacer dirigirnos a la pestaña de Archivo en el menú superior y seleccionar “Opciones”. Una vez hecho esto se abrirá una nueva ventana en la que tendremos distintas categorías de opciones, elegimos las opciones de la Barra de Herramientas de acceso rápido. Allí haremos click en la lista de “Comandos disponibles en” y seleccionaremos “Todos los comandos”.

Una vez hagamos clic en todos los comandos tendremos que buscar entre todas las opciones “Formulario” y seleccionar “Agregar”. Aceptamos para que este comando sea añadido a la barra de herramientas superior y podamos añadir formularios en cualquier momento.

Cada vez que presionemos el botón de formulario se abrirá una ventana con los datos de nuestra tabla. Como podemos ver en la imagen esta muestra los datos del elemento que tenemos registrado.

Y listo, podemos añadir cuantas entradas queramos en nuestra tabla con la herramienta de formulario.

Como pueden ver esta opción es bastante sencilla de utilizar, pero presenta algunos inconvenientes: Hay personas a las que no les gusta trabajar con el botón de formulario en la barra de herramientas, solo está disponible en distribuciones de Office 2013 en adelante, la interfaz para manejar las entradas no es la más amigable y, hay que escribir cada categoría del formulario letra por letra sin la posibilidad de usar atajos.

A pesar de no ser la forma más recomendada para generar formularios tenemos que admitir que compensa esto con la facilidad con la que podemos usar esta herramienta. De todas maneras, a continuación, explicaremos como hacer formularios utilizando MACROS en Excel.

Formularios con Programación

Como ya mencionamos anteriormente, una vez aprendas a realizar formularios con Visual Basic puedes caer en el error de hacer que todas tus gestiones recaigan en los formularios. Reiteramos que no podemos comparar Excel, que es una herramienta de análisis de datos con un sistema de planificación de recursos empresariales por lo que es importante usar Excel en la medida de sus posibilidades para optimizar nuestros resultados.

Lo primero que tenemos que hacer es tener habilitada la pestaña de programador en el menú superior de Excel. Para hacer que nos aparezca nos dirigimos en el menú superior a Archivo->Opciones->Personalizar cinta de opciones y habilitamos la casilla de “Programador”, dependiendo de la variación de español que tengamos en nuestra computadora esta casilla puede llamarse “Desarrollador” o “Developer”, si tenemos nuestro equipo en inglés.

Una vez habilitado debe aparecer en el menú superior la opción de Desarrollador, la seleccionamos y hacemos clic en Visual Basic.

Una vez presionamos Visual Basic se abrirá el asistente de Microsoft Visual Basic para Aplicaciones. Una vez en el asistente nos dirigimos al menú superior de la ventana y buscamos Insertar->Módulo, después buscamos Insertar->Userform. Con estos dos elementos trabajaremos para hacer que nuestro formulario funcione. En el módulo escribiremos el código con el que trabajará el formulario y en Userform diseñaremos la interfaz que queremos que tenga nuestro formulario.

Como pueden ver la ventana de UserForm también nos abre un cuadro de herramientas en el cual encontraremos instrumentos con los cuales podremos construir la interfaz que deseamos.

La primera herramienta de usaremos será la de “etiqueta” o “label”, con ella podremos definir en nuestra interfaz los datos que queremos introducir, en este caso el primer elemento que queremos introducir en nuestro formulario es el de “Nombre”.

Una vez insertamos una etiqueta en el userform tenemos que dirigirnos a las propiedades de la etiqueta. Esto lo hacemos fijándonos en la ventana ubicada en la esquina inferior izquierda. Allí tenemos diversas opciones para modificar nuestra etiqueta, nosotros nos enfocaremos de momento en solo ponerle el nombre deseado, para esto hay que diferenciar “Name” y “Caption”. Puede ser confuso, pero lo que queremos que se vea en la interfaz es la opción de caption, lo que escribamos allí será lo que la etiqueta mostrará en el userform. La opción de nombre solo sirve para que identifiquemos la etiqueta cuando queramos llamar elementos desde el código.

En este caso añadiremos 5 etiquetas en total ya que queremos que nuestro formulario nos pregunte el nombre, apellido, correo, fecha de inscripción y estatus del pago. Una vez añadidas las etiquetas usaremos la opción de “Cuadro de Texto”. La herramienta de Cuadro de Texto funciona para generar en la interfaz un cuadro en el cual podremos teclear la información requerida.

Para este formulario en específico solo introduciremos tres cuadros de texto para el nombre, apellido y correo y utilizaremos una herramienta distinta para la fecha de inscripción y el estatus del pago. El “Cuadro combinado” o “ComboBox” es básicamente una lista que nos permite seleccionar entre opciones predeterminadas. Como en este caso tenemos fechas de inscripción y estatus limitados esta herramienta se ajusta más a nuestras necesidades.

Una vez añadimos las ComboBox podemos cambiar el nombre que mostrará la ventana de nuestro formulario, si presionamos el área gris de nuestro UserForm podremos ver en las propiedades que también tenemos la opción de modificar el Caption. En este caso nuestro formulario dirá “Datos Nuevos”.

Lo que nos hace falta para terminar es tener un botón con el que podamos guardar los datos que introducimos y uno con el que salirnos si queremos abortar la operación. Para esto utilizamos la opción de “Botón de comando”. Añadimos dos botones y cambiamos su caption para que el formulario tome forma por completo. Como pueden ver ya nuestra ventana se ve como un formulario completo.

De esta forma concluimos la parte más sencilla, como pudieron ver hasta el momento todo lo que hemos hecho ha sido diseñar la interfaz con la que trabajaremos, pero si ejecutamos la aplicación en este punto el formulario no servirá para nada ya que no hemos introducido nada de código todavía. Puede sonar un poco complicado, pero a pesar de que necesitamos código para que el formulario funcione no hace falta que tengas ningún tipo de conocimiento previo, solo tienes que tomar el código que presentaremos a continuación y copiarlo para recrear el formulario por tu cuenta.

Entonces, para que nuestro formulario funcione tenemos que agregarle tres cosas: definir los ítems que saldrán en las ComboBox, hacer que al hacer clic en “Agregar Dato” se añadan los datos a nuestra tabla y hacer que al hacer clic en “Salirse” se cierre la ventana.

Para empezar a introducir nuestro código debemos hacer clic derecho en el área gris de nuestra UserForm y seleccionar “ver código”. Una vez hagamos esto aparecerá una ventana en la que podemos codificar nuestra UserForm para que realice las acciones que queramos.

Lo primero que queremos hacer es indicarle a la UserForm cuál es la información que va en las listas de las ComboBox, para esto nos fijamos en las dos casillas superiores. En la primera vemos que está seleccionado “UserForm”, esta casilla indica qué objeto queremos que sea afectado por el codigo, y en la casilla numero dos indicamos como queremos que se aplique. Por defecto está seleccionado “click”, pero lo cambiaremos por “Initialize” ya que queremos que se carguen las listas desde el momento en el que se inicia el formulario.

Como tenemos dos ComboBox utilizaremos solo dos líneas de código para esto:

Private Sub UserForm_Initialize()
 
Me.FechaCurso.List = Worksheets("Tabla").Range("G15:G19").Value
Me.Estatus.List = Worksheets("Tabla").Range("I15:I17").Value

End Sub

En este paso tenemos que estar muy atentos del nombre que tienen nuestros elementos para poder llamarlos desde el código, en este caso la ComboBox en la que quiero que aparezcan las fechas se llama “FechaCurso” y la del estatus de los pagos se llama “Estatus”.

Una vez más es necesario hacer la distinción entre el nombre y el caption, para poder indicar la ComboBox correctamente tenemos que escribir a cabalidad su nombre. Lo segundo a tomar en cuenta es la tabla con la que está trabajando nuestro formulario, en este caso como pueden ver la tabla se llama “Tabla”, y lo último a tomar en cuenta es el rango de celdas a mostrar en la lista desplegable. Puede parecer muy confuso, pero son tres simples pasos con los que podemos definir las listas de nuestro formulario.

Lo segundo que queremos realizar es hacer que cuando presionemos “Salirse” se cierre nuestro formulario. Esto es sumamente sencillo, solo tenemos que hacer doble clic en nuestro botón, lo cual hará que aparezca una ventana de código. Verificamos que en la casilla izquierda estemos modificando el objeto deseado (Salirse) y que en el derecho esté definida la acción deseada. En este caso es “click” porque queremos que se cierre al hacer clic en el botón. Y por último escribimos:

Private Sub Salirse_Click()
Unload Me
End Sub

Por último, tenemos que indicarle al formulario que guarde los datos en nuestra tabla cuando presionemos “Agregar Dato”. Para esto hacemos doble click en “Agregar Dato” desde la UserForm y escribimos el siguiente código:

Private Sub Agregar_Click()
    
    Worksheets("Tabla").Range(A16).EntireRow.Insert 'insertar una fila nueva
    Range("A16").EntireRow.Insert
    Range("A16") = Nombre.Value
    Range("B16") = Apellido.Value
    Range("C16") = Correo.Value
    Range("D16") = FechaCurso.Value
    Range("E16") = Estatus.Value
    
    Nombre = Empty
    Apellido = Empty
    Correo = Empty
    FechaCurso = Empty
    Estatus = Empty
    
    Nombre.SetFocus

End Sub

El código lo que indica es el lugar donde se agregará la información. Lugar en el que además se añadirá una fila nueva para cada entrada y definimos la ubicación de cada celda en la que guardaremos la información. Además, con el objeto “Empty” hacemos que cada vez que nuestro formulario agregue un dato se queden vacías las casillas definidas y con “SetFocus” hacemos que el teclado se fije en la casilla de Nombre nuevamente haciendo que perdamos menos tiempo al trabajar.

En este punto ya terminamos de programar por completo. Pero tenemos que fijarnos que el código compile de forma correcta y sin errores. De lo contrario, probablemente hayamos cometido un error en alguno de los pasos. Para probar el formulario hacemos clic en el icono con flecha verde en el menú superior del asistente o presionamos F5.

Si todo ha ido bien al presionar F5 debería aparecer el formulario y verse de esta forma. Si escribimos los datos que queramos y presionamos Agregar Dato también debería funcionar completamente. Ya casi hemos terminado, solo nos falta añadir una forma más amigable para acceder a la interfaz de nuestro formulario ya que no podemos pretender abrir Visual Basic y presionar F5 cada vez que queramos rellenar un formulario.

Nos dirigimos al menú superior de Excel y buscamos nuevamente la pestaña de Desarrollador->Insertar->Botón. Una vez hayamos seleccionado la herramienta dibujamos el botón con el que iniciaremos nuestro formulario.

Una vez hayamos dibujado el botón aparecerá una ventana para que le asignemos una macro, como no tenemos ninguna hacemos clic en “Nuevo”.

Se abrirá una nueva pestaña en la que tendremos que codificar el botón para que abra nuestro formulario. Como se ve en la imagen la UserForm de nuestro formulario se llama “NuevoDato” así que solo tenemos que hacer que el botón cargue y muestre nuestro formulario con:

Sub Botón1_Haga_clic_en()

    Load NuevoDato
    NuevoDato.Show
    
End Sub

Y listo, si nos vamos a la hoja de cálculo cada vez que presionemos el botón se abrirá nuestro formulario sin ningún problema.

Como pueden ver hay más de una forma de hacer formularios en Excel. Ya es cuestión de decidir qué forma le parece más efectiva, pero reiteramos que para poder trabajar de la manera más eficiente posible no se debe abusar del uso de formularios en Excel.