Como lograr que al ir escribiendo en el TextBox se filtre el listado automáticamente del ListBox

Estoy tratando de mejorar la búsqueda en el Listbox, por ahora tengo esta macro que una vez que escribo por Ej. "palo" y acciono el botón "BUSCAR" en el listBox aparecen todos los Textos con dichas palabra.

Lo que pretendo y busco es que a medida que voy ingresando una letra en el TextBox se vaya reflejando el filtro en el ListBox.

¿Podria ser?

Public Sub CommandButton1_Click()

Me.ListBox1.RowSource = Clear
Me.ListBox1 = Clear

Final_Total = Hoja1.Range("A" & Rows.Count).End(xlUp).Row

Y = 0

For Fila = 8 To Final_Total

Nombre = ActiveSheet.Cells(Fila, 3).Value

If UCase(Nombre) Like "*" & UCase(TextBox1.Value) & "*" Then

Me.ListBox1.AddItem

Me.ListBox1.List(Y, 0) = ActiveSheet.Cells(Fila, 1).Value
Me.ListBox1.List(Y, 1) = ActiveSheet.Cells(Fila, 2).Value
Me.ListBox1.List(Y, 2) = ActiveSheet.Cells(Fila, 3).Value
Me.ListBox1.List(Y, 3) = ActiveSheet.Cells(Fila, 4).Value

Y = Y + 1

End If

Next Fila

End Sub

1 Respuesta

Respuesta
1

De Excel no se absolutamente nada, lo que se dice nada de nada. Pero por si puede darte una idea, en Access se puede hacer muy fácil. Vamos a suponer que el cuadro de texto donde escribes, se llama Elegir, y en cuadro de lista se llama FiltroClientes, cuyo origen de la fila se lo vas a dar tu.

En el evento (supongo que tu tendrás que crear una macro) AL CAMBIAR del cuadro de texto elegir puedes poner

Private Sub Elegir_Change()
FiltroClientes.Rowsource = "select  cliente, ciudad, dirección, pais from clientes where pais  like '*" & Me.Elegir.Text & "*'"
Elegir.SetFocus
End Sub

Así, por ejemplo cuando en el cuadro de texto Elegir escribas una L, el origen de la fila del cuadro de lista FiltroClientes, serán aquellos registros de la tabla Clientes en que el campo Pais tenga, en algún sitio, una L, si luego escribes una A, el origen de la fila... que contengan la cadena LA, y así a medida que vayas escribiendo letras en el cuadro de texto.

Pero ya te digo que de Excel no se nada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas