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.