Vamos a ver cómo podemos incluir dentro de una lista de datos un cuadro de búsqueda. Para ello nos ayudaremos de la utilización de tablas dinámicas y también de un código que insertaremos en el Editor de Visual Basic.
Lo que queremos conseguir es algo similar a lo que vemos a continuación.

Nos encontramos con un listado de todos los países del mundo y en la celda A2 tenemos un cuadro resaltado en gris que nos permitirá hacer una búsqueda de una forma dinámica. Conforme estemos escribiendo en la celda A2 se van filtrando los países que contienen esa cadena de texto.

Esto puede ser muy útil cuando utilizamos tablas muy grandes de artículos, clientes, datos personales, proveedores… donde podremos hacer búsquedas, filtrando conforme escribimos.
Veremos cómo podemos hacerlo.
Crear tabla dinámica
Partimos del listado de países y lo primero que haremos es crear una tabla dinámica con los mismos.

Para ello nos situamos sobre cualquier elemento de la tabla y le damos a la ficha Insertar – Tabla dinámica.
El único campo de la tabla dinámica es el de los Países y lo arrastramos al área de filas.

De esa forma tendremos una tabla similar a la que teníamos antes pero que ahora es una tabla dinámica.

Ajustes en tabla dinámica
A esta tabla dinámica le realizaremos los siguientes ajustes.
Eliminar el total general
En la parte inferior de la tabla aparece un Total general que no queremos que se muestre.

Para ello nos situamos encima de la tabla dinámica y vamos a la pestaña Diseño y en Totales generales, le damos a «Desactivado para filas y columnas».

De esa forma habrá desaparecido ese Total general.
Eliminar etiquetas de fila
También queremos que no aparezca el encabezado Etiquetas de fila

Para ello, situándonos de nuevo encima de cualquier valor de la tabla dinámica, le damos con el botón
derecho del ratón, elegimos Opciones de tabla dinámica, y en la pestaña de Mostrar, quitamos «Mostrar títulos de campo y filtrar desplegables«.

Con ello ha desaparecido el título de campo.

Eliminar autoajuste del ancho de columna
No queremos que se nos autoajuste el ancho de la columna cada vez que haga una búsqueda. Para ello nos situamos sobre los datos de la tabla y le damos al botón derecho del ratón, Opciones de tabla dinámica y en Diseño y formato, quitamos el check de Autoajustar anchos de columnas al actualizar.

Cambiar el nombre de la tabla dinámica
Necesitaremos conocer el nombre de la tabla dinámica para lo cual lo ideal es ponerle un nombre adecuado.
Para cambiar el nombre de la tabla dinámica nos situamos encima de cualquier valor de la misma y nos vamos a la pestaña Análisis de tabla dinámica.
Después deplegamos el botón Tabla dinámica y ahí nos aparece el nombre de la tabla que podremos sustituir por cualquier otro, por ejemplo, «TDBuscar«

También vemos que aparece que el campo activo es el de PAISES.
Esos dos nombres, el de la tabla (TDBuscar) y el del campo (PAISES) los necesitaremos para incorporarlos en el código que utilizaremos a continuación.
Insertar un cuadro de texto
Aunque podía parecer que la celda A2 es una celda normal, realmente es un cuadro de texto que hemos situado justo encima de la celda.
Para ello deberemos ir a la pestaña Programador (o Desarrollador, según la versión de Excel que tengamos).
Si no tenemos visible esa pestaña deberemos activar la pestaña Programador.
Dentro de la pestaña, nos vamos a la opción Insertar y seleccionamos cuadro de texto que es el que se marca en color rojo a continuación.

Dibujamos un cuadro encima de la celda A2.

Si queremos cambiar el relleno del cuadro de texto para que no sea blanco podemos hacerlo dándole a la opción Propiedades y seleccionando otro color dentro de BackColor.

Para que este cuadro de texto funcione tendremos que situarnos encima y le damos a «Ver código».

Se abrirá el Editor de Visual Basic y debemos escribir el siguiente código:
Private Sub TextBox1_Change()
With ActiveSheet.PivotTables(«TDBuscar»).PivotFields(«PAISES»)
.ClearAllFilters
.PivotFilters.Add2 Type:=xlCaptionContains, Value1:=TextBox1.Text
End With
End Sub

Lo que tenemos que tener en cuenta es dónde tenemos que escribir el nombre de la tabla dinámica y dónde el campo que filtramos.
Ahora ya funcionaría el fichero con su cuadro de texto para filtrar valores.
Lo que tenemos que tener en cuenta es que este fichero habría que guardarlo con la extensión xlsm (Libro de Excel habilitado para macros).
Video explicativo:
Suscríbete al canal para no perderte los siguientes videos:
Deja una respuesta