Excel - Array en VB

 
Vista:
sin imagen de perfil

Array en VB

Publicado por Juan Martínez (4 intervenciones) el 18/06/2018 17:59:09
Buen día comunidad.

Resulta que estoy buscando la manera de poder realizar un filtro, que me permita seleccionar varias referencias a filtrar, es decir, por medio de un macro yo le indico a mi archivo Excel que eme busque un cliente por numero de referencia, Ejemplo: Cliente: 130, este me arroja toda la información de dicho cliente, a partir de ahí realice otra macro que me ayude a filtrar el resultado obtenido basándose en la primer columna "A2:A5000", para esto investigando y observando el código que grabo Excel, veo que utiliza un Array, el cual quisiera ver si se puede definir y que obtenga los valores de un rango de celdas especifico.

Les dejo un ejemplo del código:

1
2
3
4
5
6
7
8
Dim fase1(15, 1) As Variant
 
        fase1(15, 1) = Sheets("BD").Range("A2:A15").Value
        I = fase1(15, 1)
 
Sheets("SAAIO_FACTUR").Select
    ActiveSheet.ListObjects("SAAIO_FACTUR").Range.AutoFilter Field:=1, Criteria1 _
        :=I

Sin embargo el resultado que me arroja solo es un filtro de la celda 15 de Excel.

Quisiera poder generar dicho arreglo con información de ciertas celdas para que así cuando mi archivo con los datos cambie se siga filtrando el resultado de las mismas Celdas.


De antemano muchas gracias por permitirse leer dicho Tema y Gracias por apoyarme cualquier intención cuenta mucho, sigo en el camino del aprendizaje.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Array en VB

Publicado por Juan (4 intervenciones) el 21/06/2018 16:26:02
Listo encontré la solución con el siguiente código, gracias a esto ya puedo filtrar de manera automática con los datos que me arroje el documento excel.

1
2
3
4
5
Dim rango As Range, celda As Range Dim list() As String, lngCount As Long Set rango = Sheets("BD").Range("A2:A100")
 
lngCount = 0 For Each celda In rango ReDim Preserve list(lngCount) list(lngCount) = celda.Text lngCount = lngCount + 1 Next
 
Sheets("SAAIO_FACPAR").Select ActiveSheet.ListObjects("SAAIO_FACPAR").Range.AutoFilter Field:=1, Criteria1:=list, Operator:=xlFilterValues
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar