You are on page 1of 45

Formularios en exel (User form)

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.

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. 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 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 el Editor 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:

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.

1.- Controles Activet


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

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

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.

a) Botones de comando
Los botones de comando en Excel 2010 son de
diferentes tipos. Pueden ser botones simples,
botones de activación, botones desplegables o
botones combinados. Cada uno de estos botones
tendrá una función específica dentro de Excel.

Botones simples
Este es el tipo de botón de comando más simple porque es suficiente con pulsarlo una
sola vez para ver reflejada la acción de manera inmediata. Ejemplos de estos botones
simples son el comando Aumentar tamaño de fuente y el comando Aumentar
decimales.

Botones de activación
Los botones de activación son aquellos que permanecen activos después de ser
pulsados y solamente se desactivan cuando se
vuelve a hacer clic sobre ellos. Una manera de
identificarlos fácilmente es porque al estar
activados el botón mantiene un color diferente.

Botones desplegables
Estos botones son los que muestran un menú al
momento de pulsarlos. Algunos ejemplos de
este tipo de botones son el comando Formato
condicional, Dar formato como tabla y Estilos de
celda que se encuentran dentro del grupo
Estilos de la ficha Inicio.

Botones combinados
Un botón combinado es el que tiene una parte de
botón simple y una parte de botón desplegable. El
botón Pegar es una ejemplo de este tipo de botón
porque en la parte superior es un botón simple y en la
parte inferior es un botón desplegable.

b) Etiquetas
Puedes agregar etiquetas de datos a un gráfico de Excel para ayudar a identificar los
valores mostradas en cada punto de una serie de datos. Excel permite diferentes
opciones para la colocación y formato de las etiquetas.

Etiquetas en gráficos de Excel


Sigue los siguientes pasos para agregar las etiquetas
de datos a tu gráfico. Haz clic sobre cualquier lugar
del área del gráfico que deseas modificar y selecciona
la ficha Presentación y el comando Etiquetas de
datos:

El menú se muestra con las siguientes opciones:

 Ninguna. Ésta es la opción predeterminada y


significa que no habrá etiquetas de datos en el gráfico.
 Centro. Coloca las etiquetas de datos en el centro de cada punto de datos.
 Extremo interno. Posiciona las etiquetas en
el extremo interno superior de los puntos.
 Base interior. Las etiquetas se mostrarán en
el extremo interior inferior.
 Extremo externo. Coloca las etiquetas por
fuera de cada punto.

Selecciona la mejor opción del menú y Excel


colocará las etiquetas de inmediato. Para
personalizar aún más las etiquetas haz clic en la opción de menú Más opciones de la
etiqueta de datos y se mostrará el cuadro de diálogo siguiente:

Puedes configurar a detalle las etiquetas, inclusive puedes especificar que en lugar del
valor la etiqueta muestre el nombre de la serie o de la
categoría. Una vez que hallas hecho los cambios
apropiados haz clic en el botón Cerrar.

Recuerda que puedes remover fácilmente las etiquetas


de datos del gráfico con solo seleccionar la opción
Ninguno del menú Etiquetas de datos.

c) Boton de opción
El botón de opción en Excel nos permite dar al usuario la posibilidad de elegir una
sola opción dentro de un grupo de opciones que son excluyentes. No existe un límite
en la cantidad de botones de opción que podemos presentar al usuario.

Ejemplo de botón de opción


En esta ocasión mostraré cómo podemos utilizar el botón de
opción (Control ActiveX) y leer la selección del usuario.
Supongamos que deseo presentar una lista de rangos de
edad de las cuales el usuario elegirá solamente el rango de
edad al que pertenece.

El primer paso para poder leer la selección del usuario será asignar una celda asociada
a cada uno de los botones de opción. Esta
configuración la hacemos en la
propiedad LinkedCell de cada uno de los controles.
Para este ejemplo, el primer botón de opción lo asocié
a la celda D1, el segundo botón a la celda D2 y así
sucesivamente. Observa cómo al ir seleccionando un
botón de opción diferente los valores del rango D1:D5
van cambiando:

Leer el resultado del botón de opción


Ya que estamos colocando el valor de cada botón de opción en el rango D1:D5 puedes
leer el resultado de cada control directamente del rango y tomar alguna decisión en
caso de que su valor sea FALSO o VERDADERO. Otra posibilidad es utilizar una
fórmula para conocer la posición del control que tiene el valor VERDADERO. Para ello
utilizaré la función COINCIDIR de la siguiente manera: =COINCIDIR(VERDADERO, D1:D5,0)

Con esta fórmula estoy indicando que deseo saber la posición del valor VERDADERO
dentro del rango D1:D5. El tercer argumento de la
función, que es un cero, indica que deseo una
coincidencia exacta. Observa cómo la fórmula,
que he colocado en E1, devuelve la posición
adecuada al ir seleccionando un botón de opción
diferente.

d) Casillas de verificación
Las casillas de verificación permiten al usuario seleccionar un valor, o desmarcarlo,
con tan solo hacer clic sobre la casilla. A continuación veremos un ejemplo de uso del
Control ActiveX casilla de verificación en Excel.

El ejemplo que desarrollaremos en esta ocasión es el siguiente. Cierta empresa


organizadora de eventos necesita crear un formato en Excel para capturar el nombre
de los asistentes a su próximo congreso.

En este formato se desea tener


una casilla de verificación que indicará
si la persona cuenta con una membresía
en cuyo caso el costo del evento será
diferente. De esta manera, al seleccionar
la casilla de verificación necesitamos
modificar el costo del evento para cada
asistente. Observa la siguiente imagen.

En la celda B3 tenemos el costo normal


del evento y en la celda B4 el costo del
evento con membresía. Las casillas de
verificación están bajo la columna Miembro y el precio del evento se muestra bajo la
columna Costo. En caso de seleccionar la casilla de verificación el valor del costo
deberá modificarse por el valor de la celda B4.

Vincular casilla de verificación a una celda


El primer paso será vincular la casilla de verificación a una celda. Para ello abrimos
las propiedades de cada control y especificamos la celda a la que quedará vinculada
en la propiedad LinkedCell.
En la imagen superior puedes notar que el
control ChecBox1 ha quedado vinculado a
la celda E8. De la misma manera
hacemos para los otros controles
vinculándolos a celdas diferentes. En la
siguiente imagen puedes ver que todas
las cajas de verificación han quedado
vinculadas a una celda: Cuando
una casilla de verificación está
seleccionada, la celda vinculada mostrará
el valor VERDADERO, de lo contrario mostrará el valor FALSO. De hecho, si modificas
directamente el valor de la celda vinculada entre FALSO y VERDADERO, verás
también reflejado el cambio en la casilla de verificación sin necesidad de que hayas
hecho clic sobre el control.

Crear fórmula utilizando celda vinculada


Ya que las celdas vinculadas nos avisan si la casilla de verificación está o no
seleccionada, las podemos utilizar para crear una fórmula que determine el costo que
se debe seleccionar. La fórmula a utilizar en la
celda C8 es la siguiente:

=SI(E8, $B$4, $B$3)

La función SI nos ayuda a validar si la celda


vinculada tiene un valor FALSO o
VERDADERO. Si es FALSO, entonces se
mostrará el precio normal (B4), pero si es
verdadero quiere decir que la casilla de verificaciónestá seleccionada y por lo tanto
debemos mostrar el precio de membresía (B5). Observa el resultado de la fórmula
cuando la casilla de verificación está seleccionada:

Ejemplo de casillas de verificación


Finalmente ocultaré la columna E para que no se
vean las celdas vinculadas y colocaré la fórmula de
suma en la celda C11 para mostrar el costo total.
Observa el comportamiento de la columna Costo y
la suma total al momento de seleccionar
las casillas de verificación.
e) Cuadro combinado
Excel tiene un control ActiveX conocido como Cuadro
combinado el cual también es llamado comúnmente
por su nombre en inglés: Combo Box. Este control nos
permite crear listas desplegables en nuestros
formularios.

Para insertar un Cuadro combinado debemos ir a la


ficha Programador y dentro del botón Insertar pulsar el
comando Cuadro combinado (control ActiveX):

Después de dibujar el Cuadro combinado tendrás un resultado como el siguiente:

Agregar elementos al cuadro combinado


Si quiero que el Cuadro combinado muestre los valores del rango A1:A5, puedo
utilizar la propiedad ListFillRange donde puedo indicar este rango:
Como resultado obtendré los valores de las celdas como elementos del Cuadro
combinado:

Diferencia con el cuadro de lista


Una diferencia importante entre el Cuadro combinado y el cuadro de lista es que el
primero permite que el usuario capture una opción diferente a las mostradas en la lista.
En el ejemplo anterior no aparecía el día domingo como parte de los elementos, sin
embargo puedo capturar el día domingo dentro del cuadro de lista.

Si quieres evitar que el usuario introduzca sus propios valores existen dos opciones:

 Utilizar el control ActiveX Cuadro de lista en lugar del Cuadro combinado


 Utilizar el Cuadro combinado pero validar la opción seleccionada con código
VBA de manera que nos aseguremos que el usuario ha seleccionado una opción
de la lista. Un ejemplo de código de validación es el siguiente:
Asociar una celda al cuadro combinado
Al igual que con otros controles ActiveX, podemos asocias una celda al cuadro
combinado de manera que muestre el elemento de la lista que haya sido seleccionado.
Esta configuración la hacemos en la propiedad LinkedCell:

Cuando selecciones un elemento del cuadro combinado se reflejará dicha selección


en la celda indicada en la propiedad LinkedCell:
f) Barra de desplazamiento
La barra de desplazamiento en Excel es un control ActiveX que nos permite
desplazarnos a través de un rango de valores al hacer clic sobre los botones de avance
o retroceso o al mover la caja de desplazamiento a lo largo de la barra.

Insertar una barra de desplazamiento en Excel


Para insertar este control ActiveX debemos ir a la ficha
Programador y pulsar el botón Insertar y elegir la
opción Barra de desplazamiento (control ActiveX).Una
vez seleccionada esta opción podrás dibujar el control en
una hoja de Excel.

Propiedades de la barra de
desplazamiento
Ahora revisemos algunas de las propiedades más importantes de la barra de
desplazamiento:

 LinkedCell: Es la celda que estará vinculada a la barra de desplazamiento y por


lo tanto desplegará su valor actual.
 Max: El máximo valor al que llegaremos al final de la barra de desplazamiento.
 Min: El mínimo valor con el que iniciará la barra de desplazamiento.
 SmallChange: La cantidad de valores que la barra avanzará al hacer clic sobre
los botones de avance o retroceso (flecha).
 LargeChange: La cantidad de valores que la barra de desplazamiento se moverá
cuando el usuario haga clic en el área que se encuentre entre la caja de
desplazamiento y cualquier de las flechas de desplazamiento.
Ejemplo de barra de desplazamiento en Excel
Ahora hagamos un ejemplo sencillo utilizando
una barra de desplazamiento en Excel.
Empezaré definiendo las propiedades del control
de la siguiente manera. En primer lugar vincularé
la barra de desplazamiento a la celda A1
(LinkedCell). Estableceré el número 10 como valor
máximo y el 0 (cero) como valor mínimo
(Max, Min).

Adicionalmente configuraré la barra de desplazamiento para que avance de 1 en 1


(SmallChange), pero que tenga un avance grande de 2 en 2 (LargeChange).

Ahora observa la siguiente animación y podrás detectar el comportamiento de la barra


de desplazamiento de acuerdo a los valores establecidos en sus propiedades.
g) Formato de Números
El formato de números en Excel es utilizado para cambiar la apariencia de los
números que se muestran como valores de las celdas. Al cambiar o modificar el
formato no cambiamos el valor del número sino solamente su apariencia.

La lista de formatos del grupo Número


Al aplicar un formato a un
número mejoramos su apariencia y
hacemos que los números sean
más fáciles de entender. Los
formatos más comunes para los
números incluyen la adición del
signo de porcentaje (%), separador
de miles (,), el símbolo de moneda ($) y la cantidad de decimales
a mostrar. Estos comandos los puedes encontrar en la ficha Inicio
en el grupo Número. De manera predeterminada todas
las celdas tienen un formato conocido como formato General el
cual no tiene ningún formato específico y despliega los valores tal
como son, es decir, sin ningún símbolo, coma, etc.

Una manera rápida de cambiar el formato es utilizar la lista


de Formatos que se
muestra en el grupo Número.
Solamente pulsa la lista
desplegable para
observar las opciones
disponibles y
seleccionar la que
mejor se adapte a tus
necesidades.El formato puede ser aplicado a una
sola celda o a varias celdas a la vez, solamente debes hacer la selección previa de las
celdas antes de aplicar el formato.

El cuadro de diálogo Formato de celdas


Otro método de elegir el formato adecuado para los números es a través del cuadro
de diálogo Formato de celdas el cual se muestra con tan solo pulsar el indicador de
cuadro de diálogo del grupo Número.

2.- Comandos V.B.A


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.

Inmediatamente se mostrar un formulario en blanco y de igual manera podrás


observar el Cuadro de herramientas:
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:

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á el formulario.

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
Al pulsar
End Sub 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:
a) Comandos para grabar
Si no tienes muchos conocimientos aún sobre VBA pero quieres automatizar algunas
tareas en Excel, puedes crear macros utilizando la Grabadora de macros, lo cual no
requerirá que tengas conocimiento de programación.

Existen dos maneras de iniciar con la grabación de una macro en Excel. Lo podemos
hacer desde la barra de estado y también desde la ficha Programador.

Iniciar la grabación desde la barra de estado


Para iniciar con la grabación de una macro en Excel puedes pulsar el botón Grabar
macro que se encuentra en la parte inferior izquierda de la barra de estado de Excel.

Iniciar la grabación desde la ficha Programador


Si tienes activada la ficha Programador entonces podrás también iniciar la grabación
de una macro con el comando Grabar macro que se encuentra dentro del grupo
Código.

Cualquiera de los dos métodos mencionados anteriormente hará que se muestre el


cuadro de diálogo Grabar macro donde especificaremos el Nombre de la macro así
como algún Método abreviado que deseemos asignar a la macro.

Después de pulsar el botón Aceptar, todas las acciones que realices en Excel serán
guardadas como parte de la macro que está siendo grabada.

Detener la grabación de la macro


Para detener la grabación de la macro debes hacer clic en el comando Detener
grabación que se encuentra en la ficha Programador o también puedes pulsar el botón
que se encontrará en la barra de estado.

Ejecutar una macro grabada


Podemos ver las macros que hemos grabado con el
comando Macros que se encuentra en la ficha
Programador. Al pulsar dicho botón se abrirá el
cuadro de diálogo Macros y deberemos pulsar el
botón Ejecutar para iniciar con la ejecución de cada
una de las instrucciones de la macro.

Editar una macro previamente


grabada
La edición de una macro de Excel se puede hacer
solamente a través de código VBA. Para poder
editar una macro debes pulsar el botón Macros que
se encuentra en la ficha Programador y dentro del
cuadro de diálogo Macro elegir aquella macro que
necesites editar:
Al pulsar el botón Modificar se abrirá el Editor de Visual Basic con el código de la
macro. Debemos tener mucho cuidado con el código de una macro porque cualquier
edición incorrecta puede impedir el buen funcionamiento de la misma.

Eliminar una macro


Para eliminar una macro debes pulsar el botón Macros, posteriormente seleccionar la
macro que será eliminada y finalmente pulsar el botón Eliminar.

b) Comando para buscar


La función BUSCAR en Excel nos permite buscar un valor dentro de un rango de
celdas y como resultado nos devolverá el valor correspondiente del rango de
resultados que especifiquemos. La función BUSCAR se puede utilizar en forma
vectorial o en forma matricial.

Forma vectorial de la función BUSCAR


Comenzaré explicando la forma vectorial de la función BUSCAR. Bajo esta forma
podemos buscar un valor en un rango de celdas el cual debe ser una sola columna o
una sola fila. La sintaxis para realizar la búsqueda es la siguiente:

 Valor_buscado (obligatorio): Es el valor que deseamos encontrar.


 Vector_de_compraración (obligatorio): Un rango de celdas que está formado
por una sola columna o una sola fila en donde se realizará la búsqueda.
 Vector_resultado (opcional): El rango de celdas que contiene la columna o fila
de resultados que deseamos obtener.

El Vector_de_comparación debe estar siempre en orden ascendente, de lo contrario


la función devolverá resultados incorrectos. En caso de especificar
el Vector_resultado deberá ser del mismo tamaño que Vector_de_comparación.

Ejemplo de la función BUSCAR en forma vectorial


Para este ejemplo tengo una lista de alumnos con sus nombres, apellidos y
calificaciones y de los cuales deseo encontrar la calificación de alguno de ellos con tan
solo especificar su nombre.

En la celda F1 colocaré el nombre del alumno y en la celda F2 la función BUSCAR la


cual me ayudará a obtener su calificación. Desarrollemos la fórmula paso a paso:

1. Introducir la función BUSCAR y especificar el primer argumento que es el valor


buscado.

=BUSCAR(F1,

2. Como segundo argumento debo especificar el rango donde se realizará la


búsqueda:

=BUSCAR(F1, A2:A6,

3. El último argumento será el rango que tiene los resultados que deseo obtener y
que en este ejemplo son las calificaciones en C2:C6:

=BUSCAR(F1, A2:A6, C2:C6)

Observa cómo la función BUSCAR regresa la calificación que corresponde al nombre


buscado.
Si en lugar de la calificación quisiera obtener el apellido del alumno basta con cambiar
el tercer argumento de la función para indicar el rango que contiene los apellidos que
es B2:B6.

Forma matricial de la función BUSCAR


La función BUSCAR también puede ser utilizada con un arreglo, el cual debe estar
formado por los valores de búsqueda y los valores de regreso. La sintaxis para realizar
la búsqueda de manera matricial es la siguiente:
 Valor_buscado (obligatorio): Es el valor que deseamos encontrar.
 Matriz (obligatorio): Arreglo de valores que contiene tanto los valores de
búsqueda y de resultados.

Ejemplo de la función BUSCAR en forma matricial


Hagamos un ejemplo sencillo para ilustrar el uso de la función BUSCAR en forma
matricial. Supongamos que tengo un arreglo con las vocales del abecedario:
{“A”,”E”,”I”,”O”,”U”} y por otro lado un arreglo indicando el número de vocales: {1, 2, 3,
4, 5}.

Dada una vocal en la celda A1 deseo saber qué número de vocal le corresponde. Para
ello puedo utilizar la siguiente fórmula:

=BUSCAR(A1,{"A","E","I","O","U"; 1,2,3,4,5})

La función BUSCAR regresará el número de vocal que haya encontrado en la celda


A1. Observa el resultado:
c) Comandos para borrar o eliminar
Aunque no existe un comando en Excel que nos permita seleccionar y eliminar varias
filas en blanco al mismo tiempo, podemos emplear algunas técnicas especiales para
hacer la selección y eliminación rápidamente.

Por supuesto que, el método más básico y probablemente ineficiente, es eliminar fila
por fila utilizando el comando Eliminar que se muestra al hacer clic derecho sobre el
encabezado de una fila. Es evidente que, si tenemos
grandes cantidades de datos, el método anterior será la peor
opción para remover las filas en blanco. Así que, en esta
publicación revisaremos tres métodos que serán de mucha
utilidad para eliminar esas filas que no utilizamos.

Antes de mostrar los métodos de solución, debo decirte que


nuestro objetivo es encontrar un comando, o técnica en
Excel, que nos permita seleccionar rápidamente todas las
filas en blanco. Una vez que hemos hecho esa selección de
filas, podremos ejecutar el comando Eliminar con un par de
clics.

Eliminar filas en blanco con Ir a


Especial
La primera técnica que revisaremos utiliza el cuadro
de diálogo Ir a Especial y los pasos a seguir son los
siguientes:

1. El primer paso es seleccionar el rango de


datos y para eso podemos utilizar el ratón o el
teclado. Si vas a utilizar el teclado, debes
seleccionar la primera celda con datos y pulsar la
combinación de teclas Ctrl + Shift + Fin.
2. Ahora que tenemos los datos seleccionados, debemos ir a la pestaña Inicio >
Buscar y seleccionar > Ir a Especial.

3. Se mostrará el cuadro de diálogo Ir a Especial y deberás hacer clic sobre la


opción Celdas en blanco.

4. Después de hacer clic en el botó Aceptar, Excel seleccionará las filas en blanco.
5. Finalmente deberás ejecutar el comando Inicio > Eliminar > Eliminar filas de hoja.

Como resultado, Excel elimina las filas en blanco y mueve los datos hacia arriba. La
siguiente imagen muestra el resultado inmediato después que Excel ha hecho la
eliminación de filas. Este método es muy rápido y fácil de
aplicar, pero supone que todas las celdas vacías en el
rango de datos pertenecen a las filas en blanco. Si por
alguna razón, alguna celda está vacía y hacemos la
selección con el comando Ir a Especial, podríamos
eliminar filas que no están completamente en blanco.

Te recomiendo utilizar este método cuando tienes la


certeza de que las celdas vacías en el rango de datos que
vas a seleccionar pertenecen a las filas en blanco que
serán eliminadas.

Eliminar filas en blanco con filtro


Otro método que tenemos para eliminar las
filas en blanco es aplicando un filtro sobre
alguna de las columnas. Comenzamos
por seleccionar todos nuestros datos, incluyendo
los encabezados de columna. Para eso,
seleccionaré la celda con el primer encabezado de
columna y pulsaré la combinación de teclas Ctrl
+ Shift+ Fin. También puedes utilizar el ratón para
hacer la selección del rango. Posteriormente
agregaremos filtros a los datos con el comando Inicio > Ordenar y filtrar > Filtro.
También puedes aplicar un filtro a los datos utilizando el atajo de teclado Ctrl + Shift +
L. Una vez que los datos tienen filtro, hacemos clic sobre el botón de filtro de la
columna Mes y marcamos el cuadro de selección Vacías. En los datos de este
ejemplo, he utilizado el filtro de la columna Mes porque
las celdas vacías de dicha columna me aseguran que
eliminaré solamente las filas en blanco de los datos.
Ahora tendremos en pantalla solamente las filas vacías
de nuestros datos.

El haber filtrado por la columna Mes me ha permitido


visualizar fácilmente las filas en blanco de los datos, pero
no siempre tendremos una columna que nos ayude a
hacer este tipo de filtrado y tendremos que aplicar un filtro
similar a todas las columnas de
los datos para asegurarnos de
ver solamente aquellas filas que están
completamente vacías.

Una vez que vemos tenemos en pantalla las filas en blanco, las podemos seleccionar
con el ratón y posteriormente hacer clic derecho sobre el encabezado de fila y eligiendo
el comando Eliminar. Una vez que has hecho la eliminación de las filas, podrás mostrar
de nuevo los datos con el comando Borrar filtro de las columnas donde hayas aplicado
un filtro.
Como resultado tendremos en pantalla los datos sin las filas en blanco.

Eliminar filas en blanco con la función CONTARA


Si tenemos una tabla con muchos datos, será difícil saber saber si existen celdas
vacías que pertenecen a filas que contiene algunos datos. Para tener la certeza de que
eliminaremos filas que tienen todas sus celdas en blanco, te recomiendo utilizar una
columna auxiliar que nos ayudará a garantizar que una fila está totalmente vacía. Para
eso, utilizaremos la función CONTARA de la siguiente manera:

=CONTARA(B3:C3)

La función CONTARA evalúa el rango indicado y nos devuelve la cantidad de celdas


que no están vacías. Después de aplicar esta fórmula en la columna auxiliar de los
datos de ejemplo, obtengo el siguiente resultado:
Observa que las filas que tienen todas sus celdas en blanco son las que tienen el valor
cero en la columna auxiliar y por lo tanto tenemos la certeza de que están
completamente vacías. El siguiente paso es agregar un filtro a los datos, tal como lo
hicimos en la sección anterior, para dejar visibles solo los valores en cero de la columna
auxiliar.

Una vez aplicado el filtro, podrás seleccionar las filas vacías con el ratón y
posteriormente ejecutar el comando Eliminar.
d) Empleando Formularios
En esta ocasión desarrollaremos un formulario de captura de datos en Excel que
nos permitirá llenar una hoja de nuestro libro con información de múltiples personas
como su nombre, teléfono, y su correo electrónico.

Este artículo está basado en una publicación anterior donde hice una introducción
básica a los Formularios en VBA, sin embargo en dicho ejemplo siempre se insertaban
los datos capturados en la primera fila de la hoja remplazando los datos introducidos
previamente. Hoy haremos las adecuaciones necesarias para permitir la captura de
múltiples filas así como la validación de datos duplicados.

Crear el formulario de captura de datos


El primer paso es crear el formulario de captura y agregar los controles necesarios
que nos permitirán ingresar los datos. Para eso abrimos el Editor de Visual Basic e
insertamos el formulario desde el menú Insertar > UserForm. Después, utilizando
el cuadro de herramientas agregamos las etiquetas, cuadros de textos y botones para
tener un formulario como el siguiente:
El código para el botón Cancelar es tan simple como utilizar la instrucción Unload
Me que nos ayudará a cerrar el formulario. El código para el botón Agregar será más
elaborado, pero antes de pasar al código debo hablar sobre una función de Excel que
nos ayudará en el desarrollo de nuestro formulario de captura de datos.

La función CONTARA en Excel


La función CONTARA hace un recuento de las celdas no vacías dentro del rango
indicado. Esta función será de mucha utilidad en nuestro ejemplo porque nos ayudará
a conocer la fila en donde debemos insertar la información. Considera el siguiente
ejemplo:

La función CONTARA evalúa las celdas de la columna A y devuelve el valor 5


indicándonos que ha encontrado cinco celdas que no están vacías. Si ingresamos un
valor en la celda A6, entonces la función CONTARA nos devolverá el valor 6.

Código para el formulario de captura


Ahora que conocemos la función CONTARA, podremos comprender mejor el siguiente
código que utilizaremos para el botón “Agregar”:
Al pulsar el botón Agregar se inicializa la variable fila la cual almacenará el resultado
de la función CONTARA y que nos indicará el número de fila donde se deben insertar
los datos. También inicializamos la variable duplicados que nos indicará si los valores
ya fueron ingresados previamente.

Antes de copiar los datos a la hoja de Excel, hacemos un recorrido de la primera


columna de nuestra hoja para comparar el valor de cada celda con el valor de la caja
de texto que contiene el nombre. Si encontramos alguna coincidencia, entonces
comparamos el valor de la columna B con la segunda caja de texto para saber si son
iguales. Solo en caso de que los tres valores coincidan mostramos un mensaje al
usuario indicando que se encontraron valores duplicados y colocamos como verdadero
el valor de la variable duplicados.

En caso de que los datos no estén duplicados, insertamos todos los valores en la fila
indicada y limpiamos las cajas de texto del formulario. Finalmente mostramos un
mensaje al usuario indicando el número de fila donde se insertaron los datos.

Probando el formulario de captura de datos en Excel


Para probar el formulario de captura agregaré un botón de comando a la hoja de Excel
con la instrucción UserForm1.Show lo cual cargará nuestro formulario. Al momento de
ingresar los datos y pulsar el botón Agregar, los valores serán insertados en una nueva
fila de nuestra hoja.
Si por el contrario,
encontramos que los datos están duplicados en alguna de las filas, se mostrará un
cuadro de diálogo advirtiéndonos de la duplicidad:
Es así como el formulario de captura que hemos creado nos permite insertar los
datos capturados en una nueva fila y donde el único límite será la cantidad de filas de
nuestra hoja de Excel. Descarga el archivo de trabajo y prueba el funcionamiento de
este formulario.

e) Funcion BDMIN
La función BDMIN pertenece a la categoría de funciones de base de datos de Excel y
es utilizada para obtener el número más pequeño dentro de una columna tomando en
cuenta un criterio previamente establecido.

La función BDMIN tiene tres argumentos que describiré a continuación:

 Base_de_datos: el rango que contiene los datos a los cuales se aplicará el


criterio.
 Nombre_de_campo: La columna que contiene los datos numéricos que serán
evaluados para obtener el valor mínimo.
 Criterios: El rango de celdas que contiene los criterios.

Los tres argumentos de la función BDMIN son obligatorios y deben cumplir ciertos
requisitos. El primer argumento de la función indica el rango de datos y debe incluir los
encabezados de columna. La función BDMIN no funcionará correctamente si los datos
no tienen encabezados ya que son utilizados para relacionar los datos y los criterios.

El segundo argumento es el nombre de la columna donde se obtendrá el valor mínimo.


Lo más común es ingresar el nombre de la columna encerrada entre comillas dobles,
pero también es posible indicar el número de la columna.

Finalmente, el tercer argumento es un rango de celdas donde se especifican los


criterios a utilizar en la búsqueda del valor mínimo. Los criterios deberán estar
identificados por el nombre de la columna a la cual serán aplicados.

Ejemplo con la función BDMIN


En la siguiente imagen observas un rango de datos que comienza en la fila 5 y que
tienes los encabezados de columna en color negro.

El rango de datos
comienza en la celda B5
y termina hasta la celda D27 por lo que nuestro rango de datos tiene la dirección
B5:D27. Los encabezados que observas en color azul en la fila 2 de la hoja, serán
utilizados para los criterios y lo comprenderás mejor en unos instantes al momento de
crear la fórmula la cual ingresaré en la celda G2.

1. En la celda G2 ingresaré el nombre de la función BDMIN y el primer argumento


que es el rango que contiene los datos.
=BDMIN(B5:D27,

2. Como segundo argumento ingresaré el nombre de la columna que contiene los


valores numéricos que serán evaluados para obtener el mínimo.
=BDMIN(B5:D27, "Ventas",

3. El último argumento de la función es el rango que contiene los criterios y que en


este ejemplo es el rango B2:D3.
=BDMIN(B5:D27, "Ventas", B2:D3)

El rango de criterios incluye los encabezados de columna que están resaltados en color
azul, y que se encuentran en la fila 2 de la hoja, y además incluye las celdas que están
por debajo de dichos encabezados. En este momento, las celdas de la fila 3 están
vacías y es como si no tuviéramos criterios para la función así que al pulsar la tecla
Entrar tendremos el siguiente resultado.

Ya que no hemos indicado criterios todavía, obtenemos como resultado el valor mínimo
en toda la columna “Ventas”. A continuación, en la celda C3 que está debajo del
encabezado “Zona”, ingresaré la palabra Nortepara indicarle a la función BDMIN que
quiero obtener el valor mínimo de las ventas en la zona norte. El resultado será el
siguiente:
Observa que la fórmula no cambió en lo absoluto, pero el resultado de la celda G3 se
ha actualizado para mostrarnos el valor mínimo considerando solo aquellas filas que
pertenecen a la zona Norte. Ahora observa cómo cambia el resultado si ingreso el
texto Oeste en la celda C3:
En este ejemplo, la función BDMIN nos devuelve el valor mínimo de aquellos valores
que pertenecen a la zona Oeste. Como puedes observar, solo hemos utilizado el
criterio para la columna Zona y las otras celdas de criterios (B3 y D3) han permanecido
vacías.

Es común utilizar un arreglo de cedas como el que observas en el ejemplo anterior,


donde el rango de criterios incluye la misma cantidad de columnas que los datos, pero
eso no es obligatorio, sino que es ampliamente utilizado de esta manera porque es
muy práctico ya que nos permite indicar fácilmente un criterio para cada columna. En
los próximos ejemplos entenderás claramente los beneficios a los que me refiero.

El rango de criterios de la función BDMIN


El rango de criterios de la función BDMIN puede estar en cualquier ubicación del libro
y no necesariamente por arriba de los datos como en el ejemplo anterior. El único
requisito es que dicho rango debe contener al menos el nombre de una columna de
los datos.

En la siguiente imagen puedes observar que solo tengo el nombre de la


columna Zona en la celda E1 y por debajo, en la celda E2, el nombre de la zona de la
cual quiero obtener el valor mínimo y que es la zona Oeste.

La fórmula para obtener el valor mínimo con dicho criterio es la siguiente:

=BDMIN(A1:C23, "Ventas", E1:E2)

El rango de datos tiene la misma cantidad de filas que los ejemplos anteriores, pero
ahora comienza en la celda A1 y por lo tanto coloco la referencia A1:C23. El segundo
argumento es la columna que contiene los valores numéricos y el tercer argumento es
el rango que contiene los criterios y que en este caso solo incluye el criterio para la
columna Zona que está indicado en el rango E1:E2. El resultado es el siguiente:

Como has observado, no es obligatorio que el rango de criterios de la función BDMIN


tenga las mismas columnas de los datos. Solo es importante que tengan el mismo
nombre en el encabezado ya que esa es la manera en que la función puede asociar
adecuadamente el criterio con la columna de los datos.

Al ejemplo anterior, agregaré un criterio para la columna Ventas donde indicaré a la


función BDMIN que quiero obtener el valor mínimo que sea mayor a 2500. Dicho
criterio lo colocaré en la columna F como lo muestra la siguiente imagen:

El único cambio que debo hacer a la fórmula es el rango de criterios para que la función
considere el nuevo valor de la columna F:

=BDMIN(A1:C23, "Ventas", E1:F2)

De esta manera, la función solamente incluirá en la evaluación aquellas filas que sean
de la zona Oeste y que sean mayores a 2500. El resultado es el siguiente:
Varias filas de criterios en la función BDMIN
Ya hemos visto que es posible indicar criterios para cada una de las columnas de los
datos, pero también es posible indicar más de un criterio para una sola columna y lo
único que debemos hacer es aumentar las filas en el rango de criterios.

En la siguiente imagen puedes observar que he


colocado dos celdas por debajo del criterio de Zona y
eso le pedirá a la función BDMIN que devuelva el valor
mínimo entre las filas que pertenezcan a la
zona Norte o Sur. Observa la fórmula de la celda F1 y
verás que el tercer argumento hace referencia al rango
A1:C3 que incluye las primeras 3 filas de la hoja. El
resultado es el valor mínimo después de combinar los
valores de las dos zonas.

También puedo pedir que la función BDMIN


considere valores mayores a 2500 y eso me
devolverá un resultado diferente tal como se
observa en la siguiente imagen.

Al utilizar múltiples líneas para los criterios de la


función BDMIN deberás ser lo más específico
posible para tener la certeza de que la función
tomará solamente las filas adecuadas para
hacer la evaluación.

You might also like