Textbox buscador en hoja con columnas discontinuas

Expertos tengo otro problema. Ahora lo que necesito es buscar datos de una hoja escribiendo en un textbox y que me las muestre en un listbox pero que me muestre datos de columnas discontinuas. Tengo una macro pero solo me deja ver las primera 10 columnas de forma continua y lo que quiero es que me busque en ( columna A, columna D, columna G ) y asi sucesivamente no son mas de 10 pero que me las muestre de forma discontinua la hoja siempre oculta. Gracias!

Private Sub TextBox1_Change()
ListBox1.ColumnCount = 10
ListBox1.Visible = True
ListBox1.Clear

ListBox1.ColumnWidths = "50;120;120;50;200;55;100" 'asignando ancho de columnas

If Sheets("BASE_DE_DATOS").Range("A2:D1000").Find(TextBox1.Value) Is Nothing Then
TextBox1.Text = ""
ListBox1.Visible = False
Else
With Sheets("BASE_DE_DATOS").Range("A2:D1000")
Set c = .Find(TextBox1.Value)
primera = c.Address
fila = c.Row
ColumNA = c.Column
Do
ListBox1.AddItem Sheets("BASE_DE_DATOS").Cells(fila, ColumNA - (ColumNA - 1))
ListBox1.List(ListBox1.ListCount - 1, 1) = Sheets("BASE_DE_DATOS").Cells(fila, (ColumNA - (ColumNA - 1)) + 1)
ListBox1.List(ListBox1.ListCount - 1, 2) = Sheets("BASE_DE_DATOS").Cells(fila, (ColumNA - (ColumNA - 1)) + 2)
ListBox1.List(ListBox1.ListCount - 1, 3) = Sheets("BASE_DE_DATOS").Cells(fila, (ColumNA - (ColumNA - 1)) + 3)
ListBox1.List(ListBox1.ListCount - 1, 4) = Sheets("BASE_DE_DATOS").Cells(fila, (ColumNA - (ColumNA - 1)) + 4)
ListBox1.List(ListBox1.ListCount - 1, 5) = Sheets("BASE_DE_DATOS").Cells(fila, (ColumNA - (ColumNA - 1)) + 5)
ListBox1.List(ListBox1.ListCount - 1, 6) = Sheets("BASE_DE_DATOS").Cells(fila, (ColumNA - (ColumNA - 1)) + 6)
ListBox1.List(ListBox1.ListCount - 1, 7) = Sheets("BASE_DE_DATOS").Cells(fila, (ColumNA - (ColumNA - 1)) + 7)
ListBox1.List(ListBox1.ListCount - 1, 8) = Sheets("BASE_DE_DATOS").Cells(fila, (ColumNA - (ColumNA - 1)) + 8)
ListBox1.List(ListBox1.ListCount - 1, 9) = Sheets("BASE_DE_DATOS").Cells(fila, (ColumNA - (ColumNA - 1)) + 9)

Set c = .FindNext(c)
fila = c.Row
ColumNA = c.Column
Loop While c.Address <> primera
End With
End If

End Sub

1 Respuesta

Respuesta
1

Primero, la carga de dato en un listbox, utilizando additem solamente te permite hasta 10 columnas (limitante de excel)

Para cargar más de 10 columnas se puede hacer con la propiedad rowsource, por ejemplo:

Listbox1.rowsource = "A1:Z1000"

También se puede cargar con la propiedad List


En esta propiedad:

ListBox1.ColumnWidths = "50;120;120;50;200;55;100;100;100" 

Escribe 0 en las columnas que no quieras mostrar, por ejemplo, si quieres ver solamente las columnas 1,3,5,7,9

ListBox1.ColumnWidths = "50;0;120;0;200;0;100;0;100" 


Si tienes dudas o quieres cargar con la propiedad rowsource o list, avísame.

Saludos. Dante Amor

Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas