Saltar al contenido

Busqueda en un listbox con más de 10 columnas


Recommended Posts

publicado

Hola a todos,

Tengo un lista box que me carga la información de una tabla de 13 columnas de las cuales me interesan sólo  5 de ellas: la 1, 4, 9, 11 y 13 por lo cual oculto las que no tienen con ancho 0. 

El listbox carga los datos sin problema. El buscador funciona  bien también pero cuando la columna es la 10 o mayor de .list es menor que 10.  Va marcado en azul y negritas donde está el problema.

¿cómo puedo solucionarlo?

Private Sub UserForm_Initialize()

'se definen características del Listbox (columnas, ancho, títulos)
With LstBusqueda
    .ColumnCount = 13
    .ColumnHeads = True
    .ColumnWidths = "60;0;0;160;0;0;0;0;240;0;100;0;100"    'las columnas de ancho 0 no se muestran
End With

End Sub

Private Sub BtnTipoCodStd_Click()
Call CargarDatos
End Sub

Sub CargarDatos()
Sheets("ProdStd").Select
CantFilas = Sheets("ProdStd").Range("A" & Rows.Count).End(xlUp).Row
Rango = "A2:" & "M" & CantFilas   'se selecciona matriz desde A2 hasta la columna M y ultima fila de datos.

LstBusqueda.RowSource = Rango
Sheets("Laboratorio").Select

End Sub

Private Sub TxtBusquedaCodigo_Change()
Sheets("ProdStd").AutoFilterMode = False
LstBusqueda.RowSource = ""

y = 0
For Fila = 2 To CantFilas   'la fila 1 son los títulos de la tabla
    ValorBuscado = Sheets("ProdStd").Cells(Fila, 1).Value   'es el dato a buscar, en este caso código, y donde lo busca: columna 1 de ProdStd

    If UCase(ValorBuscado) Like "*" & UCase(TxtBusquedaCodigo.Value) & "*" Then
        LstBusqueda.AddItem
        LstBusqueda.List(y, 0) = Sheets("ProdStd").Cells(Fila, 1).Value     'se está diciendo que busque en la columna 0 (la primera) del ListBox y que sea igual a la columna 1 de la hoja excel
        LstBusqueda.List(y, 3) = Sheets("ProdStd").Cells(Fila, 4).Value
        LstBusqueda.List(y, ? = Sheets("ProdStd").Cells(Fila, 9).Value
       'LstBusqueda.List(y, 10) = Sheets("ProdStd").Cells(Fila, 11).Value
        LstBusqueda.List(y, 12) = Sheets("ProdStd").Cells(Fila, 13).Value

        y = y + 1
    End If

Next Fila

End Sub

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.