Excel: Creá una macro para guardar los criterios de filtrado

Si tenemos una base de dato en donde se aplicar filtros y estos datos son copiados mediante una macro, aprende a copiar también los criterios de filtrado.
LUN, 11 / MAY / 2015

Consideremos una base de datos simple, con tres campos: Nombre, Artículo y Cantidad. La base ocupa las tres primeras columnas de la hoja, con los títulos en [A1:C1] y los registros propiamente dichos a partir de la segunda fila.

Sobre esta base aplicamos uno o más filtros. La siguiente macro copia en las filas 25 y 26 los criterios aplicados en cada campo:

Sub filtros()
For i = 1 To 3
Cells(25, i) = Cells(1, i)
Cells(26, i) = “”
If ActiveSheet.AutoFilter.Filters(i).On Then
Cells(26, i) = “ “ + ActiveSheet.AutoFilter.Filters(i).Criteria1
End If
Next
End Sub

Esta macro recorre, con un ciclo For… Next, las tres columnas de la base. Para cada columna (para cada valor de i, variable de control del ciclo) copia el nombre del campo en la fila 25 y pone un blanco en la celda inmediatamente debajo de la anterior.

Luego pregunta si el filtro de esa columna está activo, si hay algún criterio aplicado en él. Esto lo hace a través de la propiedad On de esa columna. Si la respuesta es afirmativa, escribe el valor del criterio en la fila 26, debajo del nombre del campo correspondiente a esa columna. Este criterio se concatena por delante con un espacio en blanco porque puede comenzar con un signo =. En ese caso, Excel lo tomaría como una fórmula y podría producir un mensaje de error.

¡Comparte esta noticia!

Últimos lanzamientos Ver más