Uso de comodines en fórmula en VBA

Esta línea de código funciona perfectamente, pero dejo de funcionar al pasar al 2018, ¿hay alguna forma de usar un comodín en los últimos 2 dígitos del año? Lo intente pero no me salio, si cambio manualmente si funciona pero me obligaría a cambiar varios libros todos los años.

ActiveSheet.ListObjects("Tabla4").Range.AutoFilter Field:=1, Operator:= _

xlFilterValues, Criteria2:=Array(1, "1/21/2017")
Range("$A$4:$AC$200").SpecialCells(xlCellTypeVisible).Copy

2 Respuestas

Respuesta
2

De alguna manera habrá que identificar el año o por lo menos los 2 últimos caracteres.

Por ejemplo aquí le digo que tome el año de la primer celda de la tabla, o sea A5 en mi caso.

anio = Right(Year(Range("A5")), 2)

Y luego tu instrucción de filtrado quedaría así:

ActiveSheet.ListObjects("Tabla4").Range.AutoFilter Field:=1, Operator:= _
xlFilterValues, Criteria2:=Array(1, "1/21/20" & anio)

Sdos. No olvides valorar la respuesta.

Respuesta
1

Si tu intención, al parecer, es filtrar los meses "enero" tanto del 2017, como el 2018, solo agrega datos a tu "Array":

Operator:= _
xlFilterValues, Criteria2:=Array(1, "1/1/2018", 1, "1/21/2017")

Si tu intención es filtrar todos los meses "enero" sea cual sea el año debes usar el operador "XlDynamicFilterCriteria" y su "miembro" correspondiente:

ActiveSheet.ListObjects("Tabla4").Range.AutoFilter Field:=1, Criteria1:= _
xlFilterAllDatesInPeriodJanuary, Operator:=xlFilterDynamic

Comentas

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas