Ordenar datos filtrados de un listbox

Tengo un buscador en un userform de excel que filtra los resultados en un listbox. Me gustaría que me arrojara en primer lugar el dato más próximo a la primer letra de la palabra buscada. Es decir si escribo cemento, el listbox sale primero "asbesto cemento" y filas más abajo "cemento avellaneda". Si no fuera posible lo anteriormente mencionado me gustaría que al clickear en los encabezados de cada columna(layout o botones) me lo ordene de forma ascendente o descendente como en el explorador de window. (Por ejemplo si clickeo en el encabezado marca, me ordene alfabéticamente por marca los resultados de los productos, o si clickeo en proveedor, me ordene los productos por proveedor).

Respuesta
1

No explicas muy bien lo que quieres ni muestras un ejemplo basado en tus datos así que sin eso lo más que puedo darte es un en ejemplo para que lo adaptes a lo que necesitas, esta macro al ir tecleando en el textbox te va a ir filtrando las palabras según lo que tecleas en el hasta quedar en una sola palabra, para ello la macro funciona a base de autofiltros con un comodín "*", lo cual le indica al filtro que solo dejara aquello que comience con

y esta es la macro

Private Sub TextBox1_Change()
palabra = TextBox1.Text
With Range("a1").CurrentRegion
    .AutoFilter
    .AutoFilter 1, palabra & "*"
    Sheets("hoja2").Cells.Clear
    .Offset(1).Copy
    Sheets("hoja2").Range("b2").PasteSpecial
    rango = Sheets("hoja2").Range("b2").CurrentRegion.Address
    ListBox1.RowSource = "hoja2!" & rango
    .AutoFilter
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas