en vba repetir varias veces advancedfilter

28/11/2007 - 21:59 por Diana | Informe spam
Hola a todos,

De un listado muy grande necesito aplicar cuatro veces el advancedfilter
para que cree una nueva lista según cuatro criterios que están en la hoja 1
en A1:A2; B1:B2; C1:C2 y D1:D2.
Como tengo que modificar el código de filtro avanzado que está abajo para
que luego de leer el criterio 1 y lo pegue en la hoja NuevLista lea el
criterio 2 y pegue la lista filtrada debajo de la anterior y así
sucesivamente.

Sheets ("consolidado").Select
ActiveSheet.Range("A3:J17520").AdvancedFilter Action:=xlFilterCopy,
CriteriaRange:=Sheets( _
"Hoja1").Range("A1:A2"), CopyToRange:=Sheets
("nuevalista").Range("A2"), Unique:=False

Muchísimas gracias.
Diana
 

Leer las respuestas

#1 Héctor Miguel
29/11/2007 - 02:27 | Informe spam
hola, Diana !

De un listado muy grande necesito aplicar cuatro veces el advancedfilter
para que cree una nueva lista segun cuatro criterios que estan en la hoja 1 en A1:A2; B1:B2; C1:C2 y D1:D2.
Como tengo que modificar el codigo de filtro avanzado... para que luego de leer el criterio 1 y lo pegue en la hoja NuevLista
lea el criterio 2 y pegue la lista filtrada debajo de la anterior y asi sucesivamente.

Sheets("consolidado").Select
ActiveSheet.Range("A3:J17520").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets( _
"Hoja1").Range("A1:A2"), CopyToRange:=Sheets("nuevalista").Range("A2"), Unique:=False



(p.e.)

Dim Criterios, n As Byte
Criterios = Array("a1:a2", "b1:b2", "c1:c2", "d1:d2")
With Worksheets("consolidado")
For n = LBound(Criterios) To UBound(Criterios)
.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Worksheets("hoja1").Range(Criterios(n)), _
CopyToRange:=Worksheets("nuevalista").Range("a65536").End(xlUp).Offset(1), _
Unique:=False
Next
End With

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

Preguntas similares