VBA AutoFiltro
In this Article
En VBA, puede utilizar el Autofiltro de Excel para filtrar un rango de celdas o una tabla de Excel. Nota: Si desea aprender a utilizar un filtro avanzado en VBA, haga clic aquí: Filtro Avanzado en VBA
Crear Autofiltro en VBA
En primer lugar, vamos a demostrar cómo AutoFiltro un rango, por lo que un usuario puede filtrar los datos. Los datos que usaremos en los ejemplos están en la Imagen 1: Este es el código para crear Autofiltro:
Hoja1.Range("A1:E1").AutoFilter
Para activar el Autofiltro, debemos especificar la cabecera del rango, en nuestro caso A1:E1, y utilizar el método AutoFiltro del objeto Range. Como resultado, nuestro rango de datos tiene los filtros activados:
Imagen 2. Autofiltro activado para los datos
Autofiltro con parámetros de campo y criterios
VBA también permite filtrar automáticamente un determinado campo con ciertos valores. Para ello, debe utilizar los parámetros Campo y Criterio1 del método AutoFiltro. En este ejemplo, queremos filtrar la tercera columna(Producto) sólo para el Producto A. Aquí está el código:
Sub autofiltro_con_campos()
Hoja1.Range("A1:E1").AutoFilter Field:=3, Criteria1:="Producto A"
End Sub
En el parámetro Field, puedes poner el número de la columna del rango (no en Excel), mientras que en Criteria1 puedes poner el valor que quieres filtrar. Después de ejecutar el código, nuestra tabla tiene el siguiente aspecto:
Imagen 3. Autofiltro con campo y criterios
Como puede ver, sólo las filas con el Producto A en la tercera columna se muestran en el rango de datos.
Autofiltro con valores de campo y criterios múltiples
Si desea filtrar un campo con varios valores, debe utilizar el parámetro Operador del método AutoFiltro. Para filtrar múltiples valores, necesita establecer el Operador a xlFilterValues y también poner todos los valores de Criteria en un Array. En este ejemplo, filtramos la columna Producto para el Producto A y el Producto B. Este es el código de ejemplo:
Sub autofiltro_con_varios_criterios()
Hoja1.Range("A1:E1").AutoFilter Field:=3, _
Criteria1:=Array("Producto A", "Producto B"), Operator:=xlFilterValues
End Sub
Cuando ejecutamos el código, obtenemos sólo las filas con el Producto A y el Producto B, como se puede ver en la Imagen 4:
Imagen 4. Autofiltro con múltiples valores de criterios
Autofiltro de rango de datos con múltiples criterios
Si quiere filtrar un campo con múltiples criterios, tiene que utilizar los parámetros Criteria1 y Criteria2, pero también el operador xlAnd. En el siguiente ejemplo, filtraremos la primera columna(Fecha) para las fechas de diciembre de 2018. Por lo tanto, tenemos dos criterios: una fecha mayor que el 01/12/18 y menor que el 31/12/18. Este es el código:
Sub autofiltro_con_multiples_criterios()
Hoja1.Range("A1:E1").AutoFilter Field:=1, _
Criteria1:=">=12/10/2018", Operator:=xlAnd, _
Criteria2:="<=12/31/2018"
End Sub
Cuando ejecutamos el código, se puede ver que sólo se muestran las fechas de diciembre en el rango de datos:
Imagen 5. Autofiltro con múltiples criterios para el campo
Los valores del parámetro Operador del método AutoFiltro
En la siguiente tabla puede ver todos los valores posibles del parámetro Operator del método AutoFilter y sus descripciones:
Operador | Descripción |
xlAnd | Incluye múltiples criterios – Criterio1 y Criterio 2 |
xlOr | Incluye uno de los criterios múltiples – Criterio1 o Criterio 2 |
xlTop10Items | Filtra un determinado número de valores de mayor rango (número especificado en el Criterio1) |
xlBottom10Items | Filtra un determinado número de valores de menor rango (número especificado en el Criterio1) |
xlTop10Percent | Filtra un determinado porcentaje de los valores mejor clasificados (% especificado en el Criterio1) |
xlBottom10Percent | Filtra un determinado porcentaje de los valores más bajos (% especificado en Criteria1) |
xlFilterValues | Incluye múltiples valores de criterios con Array |
xlFilterCellColor | Filtra las celdas por colores |
xlFilterFontColor | Filtra las celdas por colores de fuente |
xlFIlterIcon | Filtra los iconos |
xlFilterDynamic | Filtra valores dinámicos |
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!