
Si solemos usar autofiltros para filtrar una lista y obtener los registros que corresponden a un determinado criterio, sabemos que puede resultar un poco tedioso. ¿Podemos hacerlo de una manera más simple, por ejemplo escribiendo el criterio en una celda y haciendo clic en un botón para proceder con el filtrado? ¿O lo podemos lograr con una macro?
Aunque el uso de autofiltros es bastante simple, hay casos en los que una macro puede ayudar. Por ejemplo, tenemos una lista con nombre y valor. Activamos los autofiltros con [Datos/Filtro/Autofiltro]. Si escribimos un nombre en [B1], la siguiente macro filtra la lista de modo de mostrar los registros que tengan ese nombre en la primera columna:
Sub Filtrar()
criterio = [B1]
Selection.AutoFilter Field:=1, Criteria1:=criterio
End Sub
Si queremos algo más avanzado, podemos incluir una instrucción para que, cuando la celda [B1] esté vacía, la macro muestre todos los registros:
Sub Filtrar()
criterio = [B1]
If criterio = “” Then
Selection.AutoFilter
Else
Selection.AutoFilter Field:=1, Criteria1:=criterio
End If
End Sub
Al usar la instrucción Autofilter sin indicar el criterio, se cancela el filtrado y se muestran todos los registros de la lista.

Esta macro filtra la lista según el criterio indicado en la celda [B1]. Si está vacía, se cancela el filtrado y se muestran todos los registros.
buenos días.
alguien que me ayude cuando el filtro avanzado utilizando variables en los criterios me oculta todo , pero si utilizo escribiendo el rango si lo hace, necesito que lo haga utilizando variables.
primfech = “>=” & Sheets(“Impr_Pedi”).Range(“c2”)
ultifech = “=05/05/2019”,
Criteria2:=”<=05/02/2020"
Gracias.
ya encontré la solución con el alto de la columna cuando están filtradas es 0.
ActiveSheet.Range(“A” & i).Height > 0
Como saber por medio de una macro si un registro esta visible es decir que no este filtrado. necesito manipular solo los datos que no han sido filtrados
Muchas gracias
Hola. como están?
Quería preguntar ¿Como sería el autofiltro (en una macros) para este tipo de caso?
Resulta que en una columna en particular tengo las iniciales
GG
GG-AP
AN-GG-CH
GGU
Y necesito que me deje todos los casos que poseen el termino “GG” (descartando el GGU). Pero esto llevándolo a una forma general, por si se repite una situacion como esta…
Hola. como están?
Quería preguntar ¿Como sería el autofiltro (en una macros) para este tipo de caso?
Resulta que en una columna en particular tengo las iniciales
GG
GG-AP
GG
AN-GG-CH
GGU
(y varios valores mas, pero estos son los que mas me interesan)
Y necesito que me deje todos los casos que poseen el termino “GG” (descartando el GGU). Pero esto llevándolo a una forma general, por si se repite una situación como esta con otros valores
buenas, como activo los autofiltros?
con un combolist, las columnas que no quieras que aparezcan, ponles ancho 0pt
hola como puedo automatizar con macros, el filtrado de cada área, luyego que se autoajuste el espacio de las celdas al contenido para que no queden ocultos datos en las celdas y luego que mande a imprimir area por area. porfavor si puedieran ayudarme…aqui les dejo una imagen de ejemplo. gracias de antemano.
[…] https://www.redusers.com/noticias/trucos/macro-para-filtrar/ Recuperado 23-03-2015 Por Alonso Dueñas Reducers Noticias Modificado Sábado, 15 de Junio de 2013 http://www.todoexcel.com/que-son-las-macros-excel/ Recuperado 23-03-2015 Recuperado Por Alonso Dueñas Todo En Excel […]
Y… ¿si lo que quiero es filtrar con una parte del texto?, es decir si tengo un número 12001 entre los datos y mi criterio es 120, ¿Cómo haría para capturar ese filtro y encuentre ese dato cuya parte es el criterio?
El ejemplo me parece excelente, permite buscar un texto o valor exacto en la tabla fltrada, pero si por ejempo tengo uan lista de nombres y quiero que solo me filtre los que comiencen con el texto que escriba en la celda?
Hola, que pasa si quiero hacer un filtro exlusivo? Es decir, quiero hacer que me des-seleccione los “0s” y me deje todos los numeros mayores y menores a 0. Gracias!
Sub Filtrar()
Rows(“1:1”)
Selection.AutoFilter Field:=1, Criteria1:=range(“b1”) , Criteria2:=range(“b2”)
End Sub
un archivo, y mas especifica la pregunta
Hola,
Necesito una macros que me filtre columnas y no filas. Se puede hacer?
Tengo una planilla con mas de 1000 filas y columnas hasta GQ.
Entonces, Necesito hacer un filtro desde Z1, para la derecha hasta GQ1.
Es posible hacerlo?
Tengo muchos items y no tienen los mismos criterios, entonces siempre hay columnas demás.
Es posible??
En ese caso, tal vez, te convenga usar un filtro avanzado.
Hola
como seria la macro si quiero que filtre por 2 criterios. Los criterios estan en B1 y B2 y son de una misma columna?
Gracias
Patricio
[email protected]