Filtro automático con múltiples criterios en VBA

Iqra Hasnain 2 junio 2022
Filtro automático con múltiples criterios en VBA

Presentaremos cómo usar AutoFilter para filtrar un rango de celdas o una tabla de Excel en VBA.

Filtro automático con múltiples criterios en VBA

Hay muchas situaciones en las que necesitamos usar filtros en Excel mientras trabajamos en un código VBA. Si queremos obtener los datos de ventas para una fecha específica, debemos usar un filtro de fecha en una columna de fecha en VBA.

VBA proporciona una solución para este problema utilizando un AutoFilter.

Comenzaremos por comprender cómo usar el filtro automático en un rango para que un usuario pueda filtrar los datos. Tengamos algunos datos, para empezar, como se muestra a continuación.

datos de muestra para usar autofiltro en VBA

Como se muestra a continuación, utilizaremos el método Range de la hoja para seleccionar el rango sobre el que queremos aplicar un AutoFilter.

# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter
End Sub

Producción:

autofiltro activado en datos de muestra en VBA

Tenemos que designar el encabezado del rango, que en nuestro caso es A1:C1, y utilizar la técnica AutoFiltro del rango de objetos para aplicar el filtro automático. Esto dará como resultado la activación de filtros para nuestra gama, como se muestra arriba.

Filtro automático con campo y criterios en VBA

VBA también nos permite filtrar campos específicos con valores particulares. Para lograr esto, tenemos que definir el campo al que queremos aplicar el filtro.

También definiremos los criterios en función de los cuales queremos aplicar un filtro. Si deseamos filtrar la segunda columna solo para Laptop, podemos ejecutar el código como se muestra a continuación.

# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter Field:=2, Criteria1:="Laptop"
End Sub

Producción:

usando autofiltro con algunos criterios en VBA

Como podemos ver en el ejemplo anterior, pudimos usar el AutoFilter con los valores deseados definiendo los valores del campo y los criterios. El resultado se muestra arriba con el filtro usando los criterios que proporcionamos en nuestro código VBA.

Filtro automático con múltiples criterios en VBA

Supongamos que queremos establecer múltiples criterios para nuestro filtro. En ese caso, podemos hacerlo usando otro operador de parámetros en AutoFilter cuando necesitemos filtrar un campo con múltiples valores.

Podemos usar el operador xlFilterValues y pasar los valores al parámetro Criteria en una matriz para filtrar en función de estos valores, como se muestra a continuación.

# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter Field:=2, Criteria1:=Array("Laptop", "iPhone"), _
                                 Operator:=xlFilterValues
End Sub

Producción:

autofiltro activado con múltiples valores en datos de muestra en VBA

Como podemos ver en el ejemplo anterior, cuando ejecutamos el código, el AutoFilter se activa con múltiples valores y muestra los resultados que queríamos.

Rango de fecha de filtro automático con múltiples criterios en VBA

Si queremos usar AutoFilter basado en el rango de fechas, o si vamos a obtener los datos entre un rango de fechas específico, tenemos que usar múltiples parámetros de Criterios con un operador xlAnd.

Veamos un ejemplo y agreguemos más datos a nuestra hoja de muestra con las fechas a continuación.

datos de muestra para usar el filtro automático con rango de fechas en VBA

Como puede ver en los datos anteriores, hemos agregado una nueva columna con fechas. Como se muestra a continuación, usaremos estas fechas para filtrar los datos entre el 20 y el 25 de mayo.

#VBA
Sub test()
Sheet1.Range("A1:D1").AutoFilter Field:=1, Criteria1:=">=05/20/2022", Operator:=xlAnd, Criteria2:="<=05/25/2022", Operator:=xlFilterValues
End Sub

Producción:

autofiltro activado con rango de fechas en datos de muestra en VBA

Como podemos ver en el ejemplo anterior, podemos filtrar fácilmente los datos en el rango de fechas proporcionando dos criterios de fechas y usando el parámetro Operador con el valor xlAnd.

A continuación se describen algunos parámetros del Operador y su descripción.

  1. El operador xlAnd puede filtrar con múltiples criterios como Criteria1 y Criteria2.
  2. El operador xlOr puede filtrar con un criterio u otro.
  3. El operador xlTop10Items nos ayudará a filtrar el número particular de los valores mejor clasificados de los criterios.
  4. El operador xlBottom10Items nos ayudará a filtrar el número particular de los valores clasificados más bajos de los criterios.
  5. El operador xlTop10Percent nos ayudará a filtrar el porcentaje particular de los valores mejor clasificados de los criterios.
  6. El operador xlBottom10Percent nos ayudará a filtrar el porcentaje particular de los valores clasificados más bajos de los criterios.
  7. El operador xlFilterValues nos ayudará a filtrar los criterios con múltiples valores.
  8. El operador xlFilterCellColor nos ayudará a filtrar los criterios en función de los colores de las celdas.
  9. El operador xlFilterFontColor nos ayudará a filtrar los criterios en función de los colores de fuente.
  10. El operador xlFIlterIcon nos ayudará a filtrar los criterios en función de los iconos de fuentes.
  11. El operador xlFilterDynamic nos ayudará a filtrar los valores dinámicos.