Macro de Filtro Avanzado

Tengo una lista de datos y una macro que funciona como un filtro avanzado con las siguientes características:
En la Hoja1 tengo la lista de datos:
A B C D
1 FECHA FACTURA IMPORTE NOMBRE (Rango A1:D9 = Datos)
2 1-sep-12 120456 90,00€ Manuel
3 2-sep-12 120457 82,00€ Jose
4 3-sep-12 120458 95,00€ Javier
5 3-sep-12 120459 75,00€ Manuel
6 4-sep-12 120460 86,00€ Carmen
7 4-sep-12 120461 89,00€ Carlos
8 5-sep-12 120462 99,00€ Javier
9 5-sep-12 120463 84,00€ María

En la Hoja2 tengo los criterios de búsqueda y el área de extracción de datos:
A B C D E
1 FECHA FECHA FACTURA IMPORTE NOMBRE (Criterios de búsqueda)
2
3
4
5
6 FECHA FACTURA IMPORTE NOMBRE (Área de extracción)

La macro tiene el siguiente código en la Hoja2 de VBA:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2:E2")) Is Nothing Then
Fechadesde = Range("A2")
Fechahasta = Range("B2")
Range("J2") = ">=" & Fechadesde
Range("K2") = "<=" & Fechahasta
Range("Datos").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("J1:N2"), CopyToRange:=Range("A6:D6"), Unique:=False
End Sub

Para automatizar la actualización de los datos, tengo los criterios en otras coordenadas:
J K L M N
1 FECHA FECHA FACTURA IMPORTE NOMBRE (Rango de criterios reales)

La macro realiza el filtrado con el criterio de fechas desde/hasta y actualiza los datos al realizar cualquier modificación, pero no permite filtrar más que este criterio, pues si a las fechas le añado otro criterio no lo tiene en cuenta y si busco con un criterio que no incluya las fechas tampoco funciona.
Necesito ayuda para que el filtrado se pueda hacer con cualquiera de los criterios, por
separado (fecha, factura, nombre, etc.) o en combinación (fecha desde-fecha hasta, fecha desde-factura, factura-nombre, etc.).

1 respuesta

Respuesta
1

Sin llegar a revisar el código con detenimiento, primero quisiera que lo coloques en un botón.

Te explico: el evento Change se ejecuta ante cualquier cambio en rango A2:E2

Es decir que cuando ingresas la fecha en A2 se ejecuta ... luego ingresas la fecha en B2 ... se vuelve a ejecutar. Y si luego necesitas otro criterio se vuelve a ejecutar filtro sobre filtro.

Pasá las instrucciones a un botón, probalo y comentame si necesitas alguna otra ayuda con esto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas