como Filtrar con array?

Solo consultas sobre macros y código VBA Excel.
Reglas del Foro 1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!

como Filtrar con array?

Notapor Cecilio » 10 Ene 2018 13:23

Estimado cacho,
he estado intentando filtrar a través de un array y no lo he logrado,razón por la que acudo a ti, si fueras tan amable de ayudarme de favor
adjunto el codigo asi como el archivo, de antemano Mil gracias

Sub Filtradepositos()

Range("c1").Select
Range("c1").AutoFilter Field:=3, Criteria1:=Array("*VENTAS*", "*MULTIVA*", "*8457*", "*165253780*", "*BANREGIO*", "*DEPOSITO EN EFECTIVO*", "*110628506*", "*109146202*"), Operator:=xlFilterValues
End Sub

Actualmente lo que hago es escribir mis criterios en un rango para poder realizar el filtro sin embargo no es muy cómodo para mi estar escribiendo cada mes en determinado rango para realizar esta tarea
Saludos
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Cecilio
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 64
Registrado: 14 Abr 2010 23:17

Re: como Filtrar con array?

Notapor Cacho R » 10 Ene 2018 14:52

.
Cecilio escribió:Estimado cacho, he estado intentando filtrar a través de un array y no lo he logrado...

¿Te falló el "invento", Cecilio?... (Jajjjajajjjaja). Intenta con:

Código: Seleccionar todo
Sub FiltraDepositos()
Dim Vec, Q&, i&, filtroAvanzado As Range
Set filtroAvanzado = [h1]
Vec = Array(8457, 109146202, 110628506, 165253780, _
  "BANREGIO", "DEPOSITO EN EFECTIVO", "MULTIVA", "VENTAS")
Q = 1 + UBound(Vec): For i = 0 To Q - 1: Vec(i) = "*" & Vec(i) & "*": Next
Application.ScreenUpdating = False
  filtroAvanzado.Offset(1).Resize(Q) = Application.Transpose(Vec)
  [c1].Copy filtroAvanzado
  [a1].CurrentRegion.AdvancedFilter 1, filtroAvanzado.Resize(1 + Q), "", False
  filtroAvanzado.Resize(1 + Q).Clear
Application.ScreenUpdating = True
End Sub

Obviamente las dos líneas iniciales "son la clave" de la macro (el Set y la asignación a Vec).
Nota que -si bien- paso el Array a la hoja, al final "todo desaparece".
Avatar de Usuario
Cacho R
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 10481
Registrado: 23 Jun 2011 17:15
Ubicación: Buenos Aires

Re: como Filtrar con array?

Notapor Cecilio » 10 Ene 2018 15:38

Muchas pero muchas Gracias, Saludos
Feliz año 2018
Cecilio
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 64
Registrado: 14 Abr 2010 23:17

Re: como Filtrar con array?

Notapor Cacho R » 10 Ene 2018 16:08

Cecilio escribió:Muchas pero muchas Gracias, Saludos
Feliz año 2018

Del mismo modo: ¡Feliz 2018!
Avatar de Usuario
Cacho R
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 10481
Registrado: 23 Jun 2011 17:15
Ubicación: Buenos Aires


Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: Bing [Bot] y 7 invitados