UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo


No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

lohengrin Caballero


¡Buenos días!
Tengo un problema y es que necesito cargar un listbox con 11 columnas, y por lo que he leído hay un límite de 10 si utilizas AddItem. Creo que la solución es utilizar RowSource, pero no se muy bien como hacerlo.
Utilizo excel 2003.
Agradecéria cualquier aportación.
El código que he utilizado es el siguiente:

Private Sub Cdb_Busqueda_Click()
    Application.ScreenUpdating = False
    If Me.Txt_Busqueda.Value = Empty Then
    MsgBox "¡¡¡Primero escribe algo que buscar, y luego pulsa Búsqueda!!!", , _
    "Informe"
    Me.Lis_Busqueda.Clear
    Exit Sub
    End If
    Me.Lis_Busqueda.Clear
    Dim UltimaFila As Long
    Dim Codigo As Long
    Dim i As Long
    Sheets("Clientes").Select
    ActiveSheet.Unprotect
    UltimaFila = Range("A65536").End(xlUp).Row
    For i = 2 To UltimaFila
'Busca los datos de comparación entre el TextBox "Busqueda" y la primera columna
'"Código" de la hoja "Clientes"
    If LCase(Cells(i, 1).Value) Like "*" & LCase(Me.Txt_Busqueda.Value) & "*" Then
    Me.Lis_Busqueda.AddItem Cells(i, 1)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 1) = Cells(i, 2)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 2) = Cells(i, 3)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 3) = Cells(i, 4)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 4) = Cells(i, 6)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 5) = Cells(i, 7)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 6) = Cells(i, Cool
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 7) = Cells(i, 11)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, Cool = Cells(i, 12)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 9) = Cells(i, 13)
    'Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 10) = Cells(i, 18)
'Busca los datos de comparación entre el TextBox "Busqueda" y la segunda columna
'"Apellidos" de la hoja "Clientes"
    ElseIf LCase(Cells(i, 2).Value) Like "*" & LCase(Me.Txt_Busqueda.Value) & "*" Then
    Me.Lis_Busqueda.AddItem Cells(i, 1)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 1) = Cells(i, 2)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 2) = Cells(i, 3)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 3) = Cells(i, 4)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 4) = Cells(i, 6)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 5) = Cells(i, 7)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 6) = Cells(i, Cool
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 7) = Cells(i, 11)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, Cool = Cells(i, 12)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 9) = Cells(i, 13)
    'Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 10) = Cells(i, 18)
'Busca los datos de comparación entre el TextBox "Busqueda" y la tercera columna
'"Nombre" de la hoja "Clientes"
    ElseIf LCase(Cells(i, 3).Value) Like "*" & LCase(Me.Txt_Busqueda.Value) & "*" Then
    Me.Lis_Busqueda.AddItem Cells(i, 1)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 1) = Cells(i, 2)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 2) = Cells(i, 3)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 3) = Cells(i, 4)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 4) = Cells(i, 6)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 5) = Cells(i, 7)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 6) = Cells(i, Cool
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 7) = Cells(i, 11)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, Cool = Cells(i, 12)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 9) = Cells(i, 13)
    'Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 10) = Cells(i, 18)
'Busca los datos de comparación entre el TextBox "Busqueda" y la cuarta columna
'"D.N.I./C.I.F." de la hoja "Clientes"
    ElseIf LCase(Cells(i, 4).Value) Like "*" & LCase(Me.Txt_Busqueda.Value) & "*" Then
    Me.Lis_Busqueda.AddItem Cells(i, 1)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 1) = Cells(i, 2)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 2) = Cells(i, 3)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 3) = Cells(i, 4)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 4) = Cells(i, 6)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 5) = Cells(i, 7)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 6) = Cells(i, Cool
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 7) = Cells(i, 11)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, Cool = Cells(i, 12)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 9) = Cells(i, 13)
    'Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 10) = Cells(i, 18)
'Busca los datos de comparación entre el TextBox "Busqueda" y la sexta columna
'"Dirección" de la hoja "Clientes"
    ElseIf LCase(Cells(i, 6).Value) Like "*" & LCase(Me.Txt_Busqueda.Value) & "*" Then
    Me.Lis_Busqueda.AddItem Cells(i, 1)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 1) = Cells(i, 2)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 2) = Cells(i, 3)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 3) = Cells(i, 4)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 4) = Cells(i, 6)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 5) = Cells(i, 7)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 6) = Cells(i, Cool
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 7) = Cells(i, 11)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, Cool = Cells(i, 12)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 9) = Cells(i, 13)
    'Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 10) = Cells(i, 18)
'Busca los datos de comparación entre el TextBox "Busqueda" y la séptima columna
'"Código Postal" de la hoja "Clientes"
    ElseIf LCase(Cells(i, 7).Value) Like "*" & LCase(Me.Txt_Busqueda.Value) & "*" Then
    Me.Lis_Busqueda.AddItem Cells(i, 1)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 1) = Cells(i, 2)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 2) = Cells(i, 3)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 3) = Cells(i, 4)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 4) = Cells(i, 6)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 5) = Cells(i, 7)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 6) = Cells(i, Cool
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 7) = Cells(i, 11)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, Cool = Cells(i, 12)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 9) = Cells(i, 13)
    'Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 10) = Cells(i, 18)
'Busca los datos de comparación entre el TextBox "Busqueda" y la octava columna
'"Población" de la hoja "Clientes"
    ElseIf LCase(Cells(i, Cool.Value) Like "*" & LCase(Me.Txt_Busqueda.Value) & "*" Then
    Me.Lis_Busqueda.AddItem Cells(i, 1)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 1) = Cells(i, 2)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 2) = Cells(i, 3)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 3) = Cells(i, 4)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 4) = Cells(i, 6)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 5) = Cells(i, 7)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 6) = Cells(i, Cool
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 7) = Cells(i, 11)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, Cool = Cells(i, 12)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 9) = Cells(i, 13)
    'Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 10) = Cells(i, 18)
'Busca los datos de comparación entre el TextBox "Busqueda" y la decimo primera
'columna "Telf-1" de la hoja "Clientes"
    ElseIf LCase(Cells(i, 11).Value) Like "*" & LCase(Me.Txt_Busqueda.Value) & "*" Then
    Me.Lis_Busqueda.AddItem Cells(i, 1)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 1) = Cells(i, 2)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 2) = Cells(i, 3)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 3) = Cells(i, 4)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 4) = Cells(i, 6)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 5) = Cells(i, 7)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 6) = Cells(i, Cool
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 7) = Cells(i, 11)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, Cool = Cells(i, 12)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 9) = Cells(i, 13)
    'Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 10) = Cells(i, 18)
'Busca los datos de comparación entre el TextBox "Busqueda" y la decimo segunda
'columna "Telf-2" de la hoja "Clientes"
    ElseIf LCase(Cells(i, 12).Value) Like "*" & LCase(Me.Txt_Busqueda.Value) & "*" Then
    Me.Lis_Busqueda.AddItem Cells(i, 1)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 1) = Cells(i, 2)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 2) = Cells(i, 3)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 3) = Cells(i, 4)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 4) = Cells(i, 6)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 5) = Cells(i, 7)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 6) = Cells(i, Cool
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 7) = Cells(i, 11)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, Cool = Cells(i, 12)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 9) = Cells(i, 13)
    'Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 10) = Cells(i, 18)
'Busca los datos de comparación entre el TextBox "Busqueda" y la decimo tercera
'columna "Telf-3" de la hoja "Clientes"
    ElseIf LCase(Cells(i, 13).Value) Like "*" & LCase(Me.Txt_Busqueda.Value) & "*" Then
    Me.Lis_Busqueda.AddItem Cells(i, 1)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 1) = Cells(i, 2)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 2) = Cells(i, 3)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 3) = Cells(i, 4)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 4) = Cells(i, 6)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 5) = Cells(i, 7)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 6) = Cells(i, Cool
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 7) = Cells(i, 11)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, Cool = Cells(i, 12)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 9) = Cells(i, 13)
    'Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 10) = Cells(i, 18)
'Busca los datos de comparación entre el TextBox "Busqueda" y la decimo octava
'columna "Dirección de la obra" de la hoja "Clientes"
    ElseIf LCase(Cells(i, 18).Value) Like "*" & LCase(Me.Txt_Busqueda.Value) & "*" Then
    Me.Lis_Busqueda.AddItem Cells(i, 1)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 1) = Cells(i, 2)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 2) = Cells(i, 3)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 3) = Cells(i, 4)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 4) = Cells(i, 6)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 5) = Cells(i, 7)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 6) = Cells(i, Cool
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 7) = Cells(i, 11)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, Cool = Cells(i, 12)
    Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 9) = Cells(i, 13)
    'Me.Lis_Busqueda.List(Me.Lis_Busqueda.ListCount - 1, 10) = Cells(i, 18)
    End If
    Next i
    Me.Txt_Busqueda.SetFocus
    Me.Txt_Busqueda.SelStart = 0
    Me.Txt_Busqueda.SelLength = Len(Me.Txt_Busqueda.Text)
    ActiveSheet.Protect
    Application.ScreenUpdating = True
    Exit Sub
    End Sub

¡¡¡¡Gracias de antemano!!!!

Igtelo

avatar
Hola Lohengrin.

Apóyate en éste aporte para RowSource.
http://www.universoexcelforo.com/t1561-listbox-con-mas-de-10-columnas-aporte

También lo puedes hacer con AddItem, ve éste otro post:
http://www.universoexcelforo.com/t1975-mas-de-10-columnas-en-vba#9581


Saludos
Ignacio Téllez

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.