Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Quitar Filtros con VBA

| 3 comentarios

¿Cómo quitar filtros con VBA?

VBA es una herramienta que nos permite aplicar soluciones mediante la implementación de fórmulas y en esta oportunidad veremos la fórmula de eliminación de filtros. 

A la hora de recopilar información lo normal es poder filtrarla para poder tener un mayor entendimiento de la información requerida. Como ejemplo usaremos la base de datos de guías efectuados por clientes 2019:

Quitar Filtros con VBA 1 Quitar Filtros con VBA 1

En la pestaña datos se ha habilitado la opción de filtros con el símbolo del embudo. Prueba de que se ha activado es que en las cabeceras de las filas hay una flecha apuntando que nos permite ingresar al menú de filtro de esa columna. 

Como ejemplo para este caso en la columna de DISTRITOS mostraremos solo aquellas guías con destino a Nueva Zelanda.

Quitar Filtros con VBA 2 Quitar Filtros con VBA 2

Ejemplo

Es aquí cuando si se desea realizar otro análisis de datos con los datos originales usamos la función de eliminación de filtros. Para esto entramos al Visual Basic y aplicamos la siguiente macro:

Quitar Filtros con VBA 4 Quitar Filtros con VBA 4

A continuación, se explicará cada parte de este módulo:

If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData: Esta fórmula nos dice que si esta activada en la hoja el filtro (If ActiveSheet.FilterMode), entonces se mostrará toda la información (Then ActiveSheet.ShowAllData).

Acto seguido asignamos la macro al comando “Quitar Filtros” y al dar click se ejecutará la macro.

Quitar Filtros con VBA

3 comentarios

  1. Hola

    Quiero aplicar esta macro pero con los filtros de una tabla dinámica, ¿cómo sería?... Gracias

  2. Hola muchas gracias por el aporte, pero sabrán si es posible borrar el filtro de una columna específica y no eliminar el de toda la hoja a través de VBA?

  3. Excelente post! Gracias

Deja una respuesta

Los campos requeridos estan marcados con *.