Excel - Listbox con filtro

 
Vista:
sin imagen de perfil

Listbox con filtro

Publicado por juan (9 intervenciones) el 04/08/2014 19:59:01
Estimados, he creado un formulario el cual tiene un filtro que me trae informacion de una hoja de calculo. Esta hoja tiene 20 columna y el listbox solo me trae 10 y no le encuentro la forma de solucionarlo.
Alguen me podria ayudar, copio el codigo, porque es muy grande el archivo y no me deja subirlo
Muchisimas gracias

Juan

'Cambia el TextBox con cada cambio en el Combo
'
Private Sub cmbEncabezado_Change()
Me.lblFiltro = "Filtro por " & Me.cmbEncabezado.Value
End Sub
'
'Cerrar formulario
Private Sub CommandButton2_Click()
Unload Me
End Sub
'
'
'Mostrar resultado en ListBox
Private Sub CommandButton5_Click()
On Error GoTo Errores
If Me.txtFiltro1.Value = "" Then Exit Sub
Me.ListBox1.Clear

Columna = Me.cmbEncabezado.ListIndex

j = 1
Filas = Range("a1").CurrentRegion.Rows.Count
For i = 2 To Filas
If LCase(Cells(i, j).Offset(0, CInt(Columna)).Value) Like "*" & LCase(Me.txtFiltro1.Value) & "*" Then
Me.ListBox1.AddItem Cells(i, j)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, j).Offset(0, 1)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, j).Offset(0, 2)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, j).Offset(0, 3)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, j).Offset(0, 4)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 5) = Cells(i, j).Offset(0, 5)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 6) = Cells(i, j).Offset(0, 6)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 7) = Cells(i, j).Offset(0, 7)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 8) = Cells(i, j).Offset(0, 8)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 9) = Cells(i, j).Offset(0, 9)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 10) = Cells(i, j).Offset(0, 10)



Else
End If
Next i
Exit Sub
Errores:
MsgBox "No se encuentra.", vbExclamation, "Inclub"
End Sub
'
'Activar la celda del registro elegido
Private Sub ListBox1_Click()
Range("a2").Activate
Cuenta = Me.ListBox1.ListCount
Set Rango = Range("A1").CurrentRegion
For i = 0 To Cuenta - 1
If Me.ListBox1.Selected(i) Then
Valor = Me.ListBox1.List(i)
Rango.Find(What:=Valor, LookAt:=xlWhole, After:=ActiveCell).Activate
End If
Next i
End Sub
'
'Dar formato al ListBox y traer los encabezados de la tabla
Private Sub UserForm_Initialize()
'
For i = 1 To 21
Me.Controls("Label" & i) = Cells(1, i).Value
Next i
'
With Me
.ListBox1.ColumnCount = 19
.ListBox1.ColumnWidths = "30 pt;90 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt;40 pt"
.cmbEncabezado.List = Application.Transpose(ActiveCell.CurrentRegion.Resize(2).Value)
.cmbEncabezado.ListStyle = fmListStyleOption
End With
End Sub
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

Listbox con filtro

Publicado por Dilex (1 intervención) el 29/10/2014 11:23:13
no soy experto pero te falta:

Me.ListBox1.List(Me.ListBox1.ListCount - 1, 11) = Cells(i, j).Offset(0, 11)
.
.
.
.
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 20) = Cells(i, j).Offset(0, 20)
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