Filtrar datos entre dos fechas

Ante todo gracias por sus respuestas y ayuda
La cuestión es que tengo en una columna las distintas fechas de los eventos y necesito hacer un filtrado entre dos fechas.
Cuando hago el filtrado de forma manual funciona perfectamente, pero quisiera realizar ésta operación mediante una macro.He intentado crear la macro para personalizar el filtro (ejecutando los pasos para que se cree sola), pero luego al ejecutar, no me aparece ningún dato.
La macro que se graba sola es la siguiente
Sub Macro4()
Range("A4:F100").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=">=10/02/2005", Operator:=xlAnd _
, Criteria2:="<=10/03/2005"
Selection.AutoFilter Field:=1
End Sub
Ya le comento que la primera vez mientras grabo la macro funciona perfectamente pero al repetir mediante la macro, sin cambiar nada, no me aparece ningún dato.
Luego intentaría entrar las fechas mediante Inputbox o algo así
La cuestión ahora es por que no funciona la macro.Si me puede ayudar lo agradecería enormemente.
Saludos
[email protected]

1 Respuesta

Respuesta
1
Hummmmm. Tu pregunta tiene bastante miga. La verdad es que excel con las fechas se lía un poco. Supondremos el siguiente ejemplo: tenemos una base de datos que empieza en la celda A6, los encabezados son Fecha(A6); Albarán (B6); Producto(C6); Cantidad(D6)
Suponemos que en la celda A1 ponemos la fecha inicial, y en B1 la fecha final. Bien, he hecho numerosas pruebas, y la verdad es que no te aconsejo el autofiltro, sino el filtro avanzado. Para ello debe marcarse un rango donde estarán los criterios. En el ej. está situado en E1:F2. En E1 y en F1 pone fecha (Exactamente igual que el encabezado de la columna A, no lo olvides, para cambiarlo tú por lo que corresponda en tu caso)
En E2 coloca lo siguiente:==">=" & A1. Y en F2 coloca la siguiente fórmula: ="<=" & B1. Ahora en A1 coloca la fecha inicial, y en B1 la fecha final. Ejecuta la siguiente macro:
Sub FiltroAvanzado()
Range("A6").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Range("E1:F2"), Unique:=False
End Sub
Ahora si, te funcionará. En fin, pruébala y me cuentas, si solucioné tu pregunta, como siempre, no olvides finalizarla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas