Saltar al contenido

Busqueda desde TextBox añadir ListBox


jabebier1

Recommended Posts

publicado

Buenos días,

Estoy realizando una aplicación en excel en la cual desde un TextBox escribo el elemento que quiero buscar en la base de datos. Según los caracteres que escribes mira en otra hoja (Base de Datos) toda una columna (10000 elementos) buscando coincidencias exactas. Todo funciona con el código adjunto lo que ocurre es que es lento ya que para cada carácter escrito realiza una búsqueda completa. ¿Tenéis alguna idea para darle mayor velocidad a la búsqueda? Interrumpir la búsqueda para coger el nuevo carácter escrito y comenzar la búsqueda...

Private Sub TextBox_Producto_Change()
Dim Producto As String
Dim StringCoincidir As String
Dim StringEscrito As String
Dim lngResultado As Double

Sheets("Productos").Select
Range("A1").Select
i = 0
ListaBusqueda.Clear
CommandButton_Insertar.Enabled = False
Do
If ActiveCell.Offset(i, 0).Value = vacio Then
Exit Do
Else
Producto = ActiveCell.Offset(i, 0).Text
StringCoincidir = Left(Producto, TextBox_Producto.TextLength)
StringCoincidir = StrConv(StringCoincidir, vbLowerCase)
StringEscrito = StrConv(TextBox_Producto.Text, vbLowerCase)

If (StringCoincidir = StringEscrito) Then
ListaBusqueda.AddItem [Producto]
End If
End If
i = i + 1
Loop
End Sub[/PHP]

Muchas gracias.

publicado

Adjunta archivo ejemplo.......normas del foro.....para que alguien te pueda ayudar.

De todos modos, ¿has pensado en la posibilidad de iniciar la búsqueda a través de un commandbutton una vez que hayas escrito los caracteres que buscas?.....De esa manera te ahorrarías muchísimo tiempo de proceso.

Un saludo,

Tese

publicado

Buenas,

Sobre el botón para la búsqueda si pudiera evitarlo seria mejor no colocarlo ya que la lista de coincidencias viene bien para guiarte ya que entre 10000 referencias muchas veces necesitas ver las coincidencias.

Adjunto un ejemplo realizado con números pero el que tengo en la oficina son referencias alfanuméricas y el resultado es más lento.

Una solución que en su día barajé fue que mientras esta en el bucle DO y detecta que se ha escrito otro carácter el en TextBox haga un exit del DO y vuelva desde el inicio pero la búsqueda en ese momento con el nuevo carácter añadido. Con esto evito tener que buscar todas las referencias por cada carácter.

Muchas gracias y un saludo

Excel_Ayuda_Lista.rar

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.