LLenar una array desde un listbox y filtrar un rango según el array

Estimados expertos sucede que me gustaría filtrar un rango de acuerdo a un listbox que tengo en un formulario, sin embargo en el momento de diligenciar el array no lo esta llenando como debe ser, en el momento estoy usando el siguiente código.

For i = 0 To lst_Diario.ListCount - 1
   If lst_Diario.Selected(i) = True Then
           valor(j) = lst_Diario.List(i)
            j = j + 1
     End If
Next i

Donde valor es el nombre del arreglo que quiero llenar, sin embargo siempre se llena solo el primero (0) los demás no y no se el por que o como más pueda llenarlo agradecería su ayuda.

Para filtrar estoy usando el siguiente código:

ActiveSheet.Range("$A$1:$J$12852").AutoFilter Field:=4, Criteria1:=Array(valor), Operator:=xlFilterValues

Sin embargo gracias a que el array valor no lo reconoce este tampoco se filtra como debe ser, me pregunto si así estaría bien o debo realizar alguna modificación.

1 respuesta

Respuesta
1

:)

Hola! Leonardo

Mira: "Valor" ya es un array por lo que el autofiltro nunca te iba a funcionar.

Por otra parte no se desprende de tu código que es "j". En resumen intenta con algo así:

Sub Macro1()
Dim j As Integer
.
. (lo que sea que tengas antes)
.
j = 0: ReDim Valor(1 To 1) As String
For i = 0 To lst_Diario.ListCount - 1
  If lst_Diario.Selected(i) = True Then
    j = j + 1: ReDim Preserve Valor(1 To j)
    Valor(j) = lst_Diario.List(i)
  End If
Next i
ActiveSheet.Range("$A$1:$J$12852").AutoFilter Field:=4, Criteria1:=Valor, Operator:=xlFilterValues
End Sub

Espero te sea de utilidad.

Saludos, Cacho R.

:)

.

¡Gracias! 

Muchas gracias sirvió perfecto....enserio muchas gracias

:)

Al contrario: ¡Gracias por tu devolución!

Saludos y hasta la próxima.

:)

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas