Seleccionar elemento especifico de un listbox de excel

Ok, tengo un formulario con un listbox, el cual se carga automáticamente desde "x" rango de una hoja al abrir o cargar el formulario. Este listbox es de varias columnas.

También tengo un textbox. Ahora si: necesito que, al escribir un dato en el textbox, el elemento de la lista (listbox) que contenga ese dato, se seleccione automáticamente, o sea, como si me fuera a la lista y lo seleccionara con el puntero del mouse. Lo anterior ya sea con un botón o con "After Update" del textbox.

Pero importante, me han propuesto soluciones similares, pero lo que hacen es tomar un listbox "en blanco", filtrar un rango, y mostrarlo en ese listbox.

Lo que yo necesito es, simplemente, que me seleccione un elemento especifico de la lista que ya se está mostrando.

Sus respuestas son las mejores de la red.

2 Respuestas

Respuesta
8

Ya te lo preparo, solo aclara x favor en que col del listbox debe revisar el contenido del textbox, ¿o puede estar en cualquiera?

Sdos y quedo a la espera de tus aclaraciones.

Bien, te dejo las instrucciones para que puedas ajustar a la col necesaria. En este ejemplo se busca en la 1ra, por eso vá 0 (las col se numeran a partir de 0).

Private Sub TextBox1_AfterUpdate()
'x Elsamatilde
'si la lista está vacía cancela
If ListBox1.ListCount <= 0 Then Exit Sub
'recorre la lista buscando el elemento. Como empieza en 0 le resta 1 al total
For i = 0 To ListBox1.ListCount - 1
If ListBox1.List(i, 0) = TextBox1 Then
 'si coincide con el textbox, lo selecciona y finaliza el bucle
 ListBox1.ListIndex = i
 Exit For
End If
'repite el bucle
Next i
End Sub

Ajusta el nro de tu columna en esta línea (If ListBox.Lis(i,0).

Probalo y si todo está resuelto no olvides finalizar la consulta.

PD) Todos los tipos de bucles y estructuras condicionales, en mi nueva Guía Temática Nº 6... !

Respuesta

¿Una consulta si tengo el listbox en multiselect como seria para que me marque las filas que coincidan con la búsqueda?

Ya lo he conseguido agregue esta línea

Lb_buscar.Selected(i) = True

y quite el exit for

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas