Filtros con una macro excel
Tengo una base de datos y he creado un autofiltro.
En una de las columnas introduzco la fecha(campo2) y en otra el nombre de los trabajadores(campo3).
Mi idea es hacer una macro para que me filtre primero por una fecha introducida por mi (por ejemplo, que filtre fechas superiores a 11 de marzo de 2005) y después que me filtre el nombre del trabajador.
Me explico:
0.- Supongamos que son tres trabajadores (Juan, Pepe y Andrés)
1.- En la casilla A1 escribo la fecha que quiero filtrar (por ejemplo 11 marzo 2005). El filtro está a partir de la fila 2
2.- Ahora quiero que me filtre por Juan y que me imprima la pantalla.
3.- Después quiero filtrar por Pepe y copiar los datos a otra hoja
4.- Después quiero filtrar por Andrés y que haga otra cosa.
5.- Finalmente que se me quiten los filtros
* Entenderas que mi problema es que no hay 3 trabajadores(estamos hablando de unos 30) y por lo tanto escribir uno a uno es algo que me resisto a hacer.
Por fin mi pregunta ¿hay alguna forma de recorrer todos los elementos de un campo filtrado? Lo digo porque sé que se puede recorrer todas las hojas creadas con un for recorriendo cada elememto de worksheets, y no se si hay algo parecido en los filtros.
*Tengo conocimientos de programación así que por favor no te cortes en "meter caña" me a mi me gusta entender lo que hago ;)
--
*Respecto a lo de filtrar por una fecha que esta escrita en una casilla.
He creado un código,si me dieras tu opinión me harías un gran favor.
He de comentarte que la columna de las fechas las he puesto en el formato que salen escritas de la forma 1-mar-05, el campo 2 es el de la fecha, y la fecha por la que quiero filtrar esta en a1
Sub FILTRANDO()
'AUTOFILTRADO DEL CAMPO 2 (fechas)
criterio = Worksheets("Partes diarios").Range("a1").Value
'y necesito el formato dia-mes-año
'intento transformarlo
criterio = Format(criterio, "dd-mmm-yy")
'ya es de tipo string (8)y el
' autofilter necesita que sea un string
'filtramos con el string criterio
Selection.AutoFilter 2, CRITERIO
End Sub
----
Antes de nada, gracias por tu atención y espero no haber sido pesado pero me tenia que explicar bien
En una de las columnas introduzco la fecha(campo2) y en otra el nombre de los trabajadores(campo3).
Mi idea es hacer una macro para que me filtre primero por una fecha introducida por mi (por ejemplo, que filtre fechas superiores a 11 de marzo de 2005) y después que me filtre el nombre del trabajador.
Me explico:
0.- Supongamos que son tres trabajadores (Juan, Pepe y Andrés)
1.- En la casilla A1 escribo la fecha que quiero filtrar (por ejemplo 11 marzo 2005). El filtro está a partir de la fila 2
2.- Ahora quiero que me filtre por Juan y que me imprima la pantalla.
3.- Después quiero filtrar por Pepe y copiar los datos a otra hoja
4.- Después quiero filtrar por Andrés y que haga otra cosa.
5.- Finalmente que se me quiten los filtros
* Entenderas que mi problema es que no hay 3 trabajadores(estamos hablando de unos 30) y por lo tanto escribir uno a uno es algo que me resisto a hacer.
Por fin mi pregunta ¿hay alguna forma de recorrer todos los elementos de un campo filtrado? Lo digo porque sé que se puede recorrer todas las hojas creadas con un for recorriendo cada elememto de worksheets, y no se si hay algo parecido en los filtros.
*Tengo conocimientos de programación así que por favor no te cortes en "meter caña" me a mi me gusta entender lo que hago ;)
--
*Respecto a lo de filtrar por una fecha que esta escrita en una casilla.
He creado un código,si me dieras tu opinión me harías un gran favor.
He de comentarte que la columna de las fechas las he puesto en el formato que salen escritas de la forma 1-mar-05, el campo 2 es el de la fecha, y la fecha por la que quiero filtrar esta en a1
Sub FILTRANDO()
'AUTOFILTRADO DEL CAMPO 2 (fechas)
criterio = Worksheets("Partes diarios").Range("a1").Value
'y necesito el formato dia-mes-año
'intento transformarlo
criterio = Format(criterio, "dd-mmm-yy")
'ya es de tipo string (8)y el
' autofilter necesita que sea un string
'filtramos con el string criterio
Selection.AutoFilter 2, CRITERIO
End Sub
----
Antes de nada, gracias por tu atención y espero no haber sido pesado pero me tenia que explicar bien
1 Respuesta
Respuesta de villaju