Autofiltro VBA para Excel

Quisiera saber si me pueden ayudar a agregar el código necesario para hacer un auto filtro basado en "inicia con", este ya esta listo, lo que necesito es que ademas el filtro contemple la cantidad de caracteres en la celda e.g =17, este es el extracto de mi código, como ven ocupo filtrar las filas que inicien con vendor en la columna "C" pero además requiero sólo las que tienen 17 caracteres,

Selection.AutoFilter
Range("C8").Select
ActiveSheet.Range("$C$8:$C$30635").AutoFilter Field:=1, Criteria1:= _
"vendor*", Operator:=xlAnd

Respuesta
2

Se me ocurre la siguiente solución, puesto que no podemos hacer un filtro por un valor calculado, en este caso quieres calcular la longitud de los caracteres de la celda y en base a esa longitud hacer el filtrado. Como no podemos hacer eso en autofiltro, se me ocurre, que selecciones una columna extra, que llamaremos "ce", en esa columna extra haremos el cálculo de la longitud de los caracteres de la columna "C" y en un filtro adicional, ahora sí, filtraremos los que miden 17 caracteres. Después de la macro, puedes borrar o eliminar la columna extra.

Cambia tu código por el siguiente:

ce = "F"
ActiveSheet.AutoFilterMode = False
Columns(ce).Clear
    f = Columns(ce).Column - 2
    u = Range("C" & Rows.Count).End(xlUp).Row
    Range(ce & "9:" & ce & u).FormulaR1C1 = "=LEN(RC3)"
    ActiveSheet.Range("C8:" & ce & u).AutoFilter Field:=1, Criteria1:="vendor*"
    ActiveSheet.Range(ce & "8:" & ce & u).AutoFilter Field:=f, Criteria1:=17

Saludos.Dante Amor
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas