Rango para filtro avanzado...

Hola a tod@s, se me ha presentado un problema, en cual tengo un filtro avanzado, el cual funciona perfectamente con valores fijos pero ahora necesito que estos valores cambien, como por ejemplo:

donde n# = son nombres?

Selection.AutoFilter Field:=1, Criteria1:=Array("n2", "n1"), Operator:=xlFilterValues
Selection.AutoFilter Field:=5, Criteria1:=Temp1, Operator:=xlAnd, Criteria2:=Temp2

como puedo variar los valores del array, he intentado poner dentro el nombre de un rango donde están los nombres, para que el valor del array cambien cada vez que cambie el valor del rango de celda, pero no se como hacerlo.

Un saludo, gracias de antemano.?

1 Respuesta

Respuesta
1

Hasta donde yo se, esas líneas de código no las utilizaría para hacer un filtro avanzado. Yo usaría estas, sigue mi ejemplo:

Imagina que tengo una tabla que está ubicada en el rango A7:E26 y en las lineas de encima, es decir, de la 1 a la 5 (la 6 no la utilizamos para que no se pegue a la tabla), vamos a construir los criterios para el filtro avanzado de la tabla. La macro que yo utilizaría es esta:

Sub avanzado()
Range("a7").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, criteriarange:=Range("a1").CurrentRegion, unique:=False
End Sub

Si te ha servido de ayuda recuerda finalizar y puntuar

Ha sido error mio, ya que no hera filtro avanzado, sino un filtro normal, donde array contiene una serie de nombres que deseo filtrar a la vez y temp1 y temp2 es el rengo de fechas que necesito.

Veamos un ejemplo: Imagina que los nombres los tienes tecleados en el rango G1:G5 y la tabla de datos a filtrar, en mi caso, está en el rango A1:E20. Con esta macro consigo filtrar con respecto a los nombres que hay en G1:G5.

sub filtrar()

range("g1").select

do while activecell.value <>""

valor = valor &","&activecell.value

activecell.offset(1,0).select

loop

valor = mid(valor,2,len(valor)-1)

valor = split(valor,",")

range("a1").autofilter field:=1, criteria1:=valor

end sub

Recuerda finalizar y puntuar

Muchísimas gracias por la respuesta y ayuda, pero Split me divide en cinco variables, aquí solo me toma una variable range("a1").autofilter field:=1, criteria1:=valor, de este modo tendría que ir agregando mas criterios, no podría ser una forma de matriz en la cual estuvieran todos los nombres ?

Disculpa, olvidé un parámetro. Ahora funciona bien:

sub filtrar()
range("g1").select
do while activecell.value <>""
valor = valor &","&activecell.value
activecell.offset(1,0).select
loop
valor = mid(valor,2,len(valor)-1)
valor = split(valor,",")
range("a1").autofilter field:=1, criteria1:=valor, Operator:=xlFilterValues
end sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas