Como agregar encabezado en listbox en macros excel

Este es mi código:

Private Sub text_buscar_Change()
NumeroDatos = Sheets("Reg_inquilino").Range("B" & Rows.Count).End(xlUp).Row
Sheets("Reg_inquilino").AutoFilterMode = False
Me.Listbox_info = Clear
Me.Listbox_info.RowSource = Clear
'Me.Listbox_info.ColumnHeads = True
y = 0
For fila = 3 To NumeroDatos
Ape_info = Sheets("Reg_inquilino").Cells(fila, 4).Value

If UCase(Ape_info) Like "*" & UCase(Me.text_buscar.Value) & "*" Then
Me.Listbox_info.AddItem
Me.Listbox_info.List(y, 0) = Sheets("Reg_inquilino").Cells(fila, 2).Value
Me.Listbox_info.List(y, 1) = Sheets("Reg_inquilino").Cells(fila, 3).Value
Me.Listbox_info.List(y, 2) = Sheets("Reg_inquilino").Cells(fila, 4).Value
Me.Listbox_info.List(y, 3) = Sheets("Reg_inquilino").Cells(fila, 5).Value
y = y + 1
End If
Next
End Sub

Realiza la búsqueda por textbox, pero cuando lo hace pierde la cabecera. ¿Hay alguna forma de que no pase esto?. Su apoyo

1 Respuesta

Respuesta
1

Para conservar los encabezados debes cargar con la propiedad Rowsource, en esos casos lo conveniente es pasar los datos filtrados a otra hoja temporal, y cargar los datos desde la hoja temporal.

Por ejemplo:

Private Sub text_buscar_Change()
'Act Por Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Reg_inquilino")
    Set h2 = Sheets("temp")
    h2.Cells.Clear
    h1.Rows(2).Copy h2.Rows(2)  'copia encabezado a la hoja temp
    '
    Me.Listbox_info.RowSource = Clear
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    u = h1.Range("D" & Rows.Count).End(xlUp).Row
    h1.Range("B2:E" & u).AutoFilter Field:=3, Criteria1:="=*" & text_buscar & "*"
    h1.Range("B2:E" & u).Copy
    h2.Range("B2").PasteSpecial xlValues
    u2 = h2.Range("D" & Rows.Count).End(xlUp).Row
    If u2 > 2 Then
        rango = h2.Range("B3:E" & u2).Address
        Listbox_info.RowSource = h2.Name & "!" & rango
    End If
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub

Crea una hoja llamada Temp. Activa la propiedad ColumnHeads = True


Avísame cualquier duda.

.

.

Gracias por tu pronta respuesta, la solución me parece fenomenal, pero si no es mucho pedir, hubiera otra solución pero sin crear otra hoja?.. o tal ves me recomiendes cambiar la configuración de búsqueda de otra manera. Agradezco tu gran apoyo.

Es más fácil llevar el control en otra hoja, pero si no quieres crear otra hoja, entonces lo puedes hacer en la misma hoja "reg_inquilio", pero utilizando columnas disponibles a la derecha.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas