filtrar tabla a partir de opciones seleccionadas en un listbox
publicado
Tengo un listbox que tiene como opciones diferentes paises, y necesito que al seleccionar 1 o mas paises de ese listbox me aplique el filtro de esas selecciones en una tabla.
la tabla la tengo en la hoja 4 y la columna 7 es la correspondiente a ciudades. lo que necesito es que, si yo selecciono, Argentina, Argelia y Angola, me aplique dicho filtro en la tabla que tengo en mi hoja4
Private Sub GenerarInforme_Click()
Dim elementoLista As Long
Dim arreglo As Variant
With ListBox1
For elementoLista = 0 To .ListCount - 1
If .Selected(elementoLista) Then
If ListBox1.Selected(elementoLista) = True Then
seleccionados = seleccionados + 1
End If
Dim ary(1 To seleccionados) As String
If seleccionados = 1 Then coma = "" Else coma = ","
arreglo = arreglo & .List(elementoLista) & vbCrLf
ary(seleccionados) = arreglo
End If
Next elementoLista
End With
If Len(arreglo) = 0 Then
MsgBox "No hay elementos seleccionados"
End If
Hoja4.Range("rango").AutoFilter _
Field:=7, _
Criteria1:=Array(ary), _
Operator:=xlFilterValues
End Sub
Este es el código que estoy utilizando pero siempre me filtra en blanco, es decir, no me selecciona ningún país. De antemano, muchas gracias.
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Tengo un listbox que tiene como opciones diferentes paises, y necesito que al seleccionar 1 o mas paises de ese listbox me aplique el filtro de esas selecciones en una tabla.
la tabla la tengo en la hoja 4 y la columna 7 es la correspondiente a ciudades. lo que necesito es que, si yo selecciono, Argentina, Argelia y Angola, me aplique dicho filtro en la tabla que tengo en mi hoja4
Private Sub GenerarInforme_Click() Dim elementoLista As Long Dim arreglo As Variant With ListBox1 For elementoLista = 0 To .ListCount - 1 If .Selected(elementoLista) Then If ListBox1.Selected(elementoLista) = True Then seleccionados = seleccionados + 1 End If Dim ary(1 To seleccionados) As String If seleccionados = 1 Then coma = "" Else coma = "," arreglo = arreglo & .List(elementoLista) & vbCrLf ary(seleccionados) = arreglo End If Next elementoLista End With If Len(arreglo) = 0 Then MsgBox "No hay elementos seleccionados" End If Hoja4.Range("rango").AutoFilter _ Field:=7, _ Criteria1:=Array(ary), _ Operator:=xlFilterValues End SubEste es el código que estoy utilizando pero siempre me filtra en blanco, es decir, no me selecciona ningún país. De antemano, muchas gracias.