Búsqueda Inteligente con Combobox en Excel

Una vez mientras alguien estaba trabajando en una base de datos de personal, se me ocurrió hacer una mini aplicación con un formulario de búsqueda de empleados. Así fácilmente de una planilla de cientos de empleados,  podías por ejemplo buscar rápidamente el número de teléfono para poder llamarlo o la dirección de contacto, etc. En ese momento se me ocurrió usar un Combobox como herramienta de búsqueda inteligente. Es decir, no es que solo busca por las primeras letras ni nada parecido, busca de acuerdo a las coincidencias que encuentra revisando todos los elementos indexados.
Como siempre mi intensión con este Post no es darles paso a paso la solución pero si pautas principales y  mediante el video mostrarles el funcionamiento. La idea es que Uds. prueben y lo hagan. Siempre es de prueba y error hasta que sale.



Proceso:
·         Es muy simple, entran a la plataforma del VBA. Crean un formulario y dentro del formulario incrustan un Combobox. También incrustan varios “Textbox” dónde se van a mostrar los datos para la selección que hagamos.
·         Uds. tendrán una base de datos en forma de filas, dónde en cada fila tienes identificado cada elemento de la base de datos, en este caso empleados.
·         Lo que harán es indexar los datos de la base de datos en el Combobox con “Additem”. En este caso, se podrá usar el Combobox como se usa siempre, que es desplegando y eligiendo un dato de la lista pero además queremos que los datos del despliegue de la lista vaya cambiando a medida que vamos introduciendo una parte de la palabra clave.
·         Para que busque de acuerdo al dato introducido, cada vez que cambie el valor del Combobox, haremos que indexe nuevamente. Por lo dicho tendremos que usar un evento “Worksheet_Change”.
·         Otra cosa a tener en cuenta es que hacer la nueva indexación antes de guardar el valor, comparamos con el valor introducido en el Combobox, si coincide con algún valor de la cadena de texto indexa o agrega el ítem, sino sigue. Para dicha comparación podemos usar la función “InStr”
Ejemplo:
Si tenemos estos datos;
1.       Auto
2.       Casa
3.       Torre
4.        Bote
Si en el Combobox introducimos “To” tendríamos lo siguiente:






 En internet eh visto que es algo muy solicitado, y no encontré por lo menos alguna buena alternativa.
Keys:
·         Combobox Inteligente
·         Combobox autorrellenar
·         Búsqueda con Combobox

35 comentarios:

Edinsson Fausto Valdez Barrueta dijo...

Te felicito por el trabajo que hiciste, es muy bueno y de hecho será muy util. Quisiera consultarte si es posible que comprtas el archivo para poder tomarlo como referencia y hacer uno para aligerar mi trabajo diario. Gracias.

Juan Pablo dijo...

Hola Edinsson, Gracias por tu comentario. Para este tema hay una entrada más reciente, por favor revísalo. Sds

Edinsson Fausto Valdez Barrueta dijo...

Juan Pablo, gracias por responder, sin embargo te comento que yo soy un novato en esto de los Blog, no se en que parte puedo encontrar lo que me comentas, te pediria por favor que me indiques el link donde puedo acceder.
Por otro lado dime de que manera además de este Blog puedo contactarme contigo para comunicarme y ver la forma de como me puedas ayudar con este tema. Que por cierto me gusto mucho.
Saludos y quedo a la espera de tu respuesta.

Juan Pablo dijo...

Hola, el post se encuentra en este Link.
Puede contactarte con nosotros en
Contacto
Sds

Peter dijo...

buenas noches amigos interesante blog en especial lo de las busquedas inteligentes, estuve probando lo del combo box y no pude resolverlo de acuedro a los tips que das si me puedes ayudar te lo agradeceria

Juan Pablo Torres dijo...

Hola amigo, gracias por el comentario. Esta aplicación es un tanto avanzada, es por eso que se hicieron más publicaciones con similar idea pero de más fácil aplicación. Revisa la lista de entradas. Sds

Marco Catalan dijo...

Hola

Estimado esto es me me partido la cabeza tratando de hacer lo que tienes justo aquí debido a que la entrada anterior a la que haces referencia es necesariamente en una hoja y no lo puedo utilizar en un userform. favor ayúdame si es necesario te envió mi archivo para que le puedas dar un vuelta...

Saludos

Juan Pablo Torres dijo...

Hola amigo, gracias por el comentario. Esta aplicación es un tanto avanzada, es por eso que se hicieron más publicaciones con similar idea pero de más fácil aplicación. Revisa la lista de entradas. La idea es ir publicando más mini aplicaciones para ir llegando a la definitiva. También puedes escribirnos mediante el formulario de contacto. Saludos

Hector Hugo Menendez dijo...

Estimado,el ejemplo que veo en el video es justamente lo que necesito para un proyecto que tengo.
El proyecto cuenta con una base de datos de mi despensa y necesito ese tipo de busqueda para lograr obtener de manera rapida el codigo,nombre,precio,etc.

Me podrias pasar un ejemplo en un xls para ver si logro adaptarlo.

Desde ya muchisimas gracias por tu ayuda.

Juan Pablo Torres dijo...

Hola, cómo estas! Gracias por los comentarios!
Esta aplicación es muy avanzada y requiere ciertos conocimientos por lo que hicimos varios artículos dando otras alternativas para este uso. Te sugerimos que las revises desde la lista de artículos. En algún momento abordaremos este tema. Recuerda que también puedes escribirnos desde el formulario de contacto. Saludos

Miguel TAPIA MOLINA dijo...
Este comentario ha sido eliminado por un administrador del blog.
Johnny Velasquez dijo...

muy bueno lo que publicas, me gustaria saber como puedo hacer una busqueda en una hoja de esxcel que se conecta a una base de datoy y que busque por nombre de proyecto

Johnny Velasquez dijo...

vi como haces con tablas dinamicas pero lo que no puedo hacer es una ves que elijo el nombre que me aparescan los demas campos

Juan Pablo Torres dijo...

Hola amigo, cómo estas! Gracias por escribirnos!
Por favor escríbenos mediante el formulario de contacto ya que para tu primera pregunta no entendemos bien el alcance de lo que necesitas. En cuanto a tu segunda consulta, en el artículo esta paso a paso y en el video también pero nos puedes consultar de nuevo.
Esperamos tus comentarios. Saludos

Ariel dijo...

Hola, me gusto mucho el post...tengo un archivo similar con combobox para buscar datos,le agrego los item que quiero con el .additem, asi como tu dices, pero no utilizo ese evento "worksheet change" tampoco el Insr...queria saber si me podrias facilitar el archivo, y asi ver si me sirve para adaptarlo a una plantilla que estoy elaborando. Muchas gracias. Saludes

Juan Pablo Torres dijo...

Hola amigo, cómo estas! Gracias por escribirnos!
Este artículo se fue desarrollando en varios, revisa donde dice articulos relacionados. Son varios, tenes que ir viendo todos porque cada uno tiene un tip. Además nos falta publicar un par más por falta de tiempo. También nos puedes contactar mediante el formulario de contacto. Saludos

Oscar Arroyave dijo...

Buenas tardes Juan Pablo, con respecto al articulo es lo que necesito, realice un formulario con Combobox y me trae las palabras segun las primeras letras, pero no me funciona como quiero, que estando en cualquier posicion de la lista me traiga todas las expresiones que contengan dicha palabra clave, no he podido ver el codigp que empleaste para realizar dicha tarea, y no he podido saber por donde lo encuentro, me puedes ayudar? Gracias

Juan Pablo Torres dijo...

Hola amigo, cómo estas! Gracias por tus comentarios!
Si te fijas al pie del artículo hay una lista de artículos relacionados. Ahí encontrarás las ideas que necesitas.
Esperamos tus comentarios.
De todas maneras te decimos que nos falta subir un artículo más al respecto.
Saludos

Dogo Burdeos dijo...


Hola, en verdad agradecería mucho me pudieras apoyar en como lograr realizar este tipo de busqueda, ya que en los que mencionas resulta casi imposible saber que estas haciendo para obtener el resultado, he visto tus otro videos y claramente se entiende lo que haces, pero en este que me gustaria llevar a la practica no lo he logrado adivinar.

en verdad te agradezco si me pudieras compartir un vídeo mas detallado de este ejemplo.

Juan Pablo Torres dijo...

Hola amigo, cómo estas! Gracias por escribirnos!
En cuanto a tu consulta, si has visto los videos posteriores, es básicamente lo mismo. Sino que para ahorrarnos complejidad usamos un combobox sobre la misma hoja de excel, aquí utilizamos un formulario. Es lo mismo, nada más que debes indexar el combo con los datos del filtrado que haces mediante una tabla dinámica u otro medio en una hoja auxiliar. Se puede hacer sin hoja auxiliar pero es demasiado complejo y pierde practicidad.
Esperamos tus comentarios.
Saludos

Alexander Murcia Calderón dijo...
Este comentario ha sido eliminado por el autor.
Alexander Murcia Calderón dijo...
Este comentario ha sido eliminado por el autor.
Juan Pablo Torres dijo...

Hola amigo, cómo estas! Gracias por todos tus comentarios!
En cuanto a lo que solicitas, en realidad tenemos varios artículos del mismo tema, casi que esta agotado. Sin embargo nos quedan un par de artículos más por subir.
Por otro lado, esto que hacemos aquí lo hacemos en uno de esos artículos que te mencione pero en vez de usar un combobox en un formulario directamente lo usamos sobre la hoja. Básicamente en el formulario es lo mismo pero lo hicimos así para restar complejidad.
Esperamos tus comentarios.
Saludos

Alexander Murcia Calderón dijo...
Este comentario ha sido eliminado por el autor.
Alexander Murcia Calderón dijo...
Este comentario ha sido eliminado por el autor.
Juan Pablo Torres dijo...

Felicitaciones amigo! En los artículos esta todo lo que se necesita. Igual tenemos un par más que no pudimos publicar ya que todavía no tenemos tiempo. Si te fijas en los artículos , creamos varios con diferentes niveles de complejidad, desde los más básico a lo más complejo.
Un saludo

Alexander Murcia Calderón dijo...
Este comentario ha sido eliminado por el autor.
Alexander Murcia Calderón dijo...

Mirando muy detenidamente el video me acabo de dar cuenta de que mi código es igual. Amigo por lo menos me hubieras dicho que era el mismo código... me acabo de dar cuenta que a ti también te parpadea el DropDown, por lo cual es lógico que también te sales y vuelves al ComboBox

Juan Pablo Torres dijo...

Hola amigo, cómo estas! En realidad no hemos visto en detalle el código que comentaste. A simple vista parece incompleto, revisa los demás artículos sobre este tema. Si te funciona, perfecto! Lo que mas nos interesa con el blog es transmitir una idea, mostrar elementos, herramientas, tips. Etc. Trabajo cumplido!
Gracias, Saludos.

Unknown dijo...

JUAN PABLO TORRES... Eres chileno?

Alexander, yo también soy chileno y la verdad, estoy muy decepcionado, al igual que tu, de este blog. Don Juan Pablo a toda costa se niega a compartir su famoso código, será porque lo tienen a la venta por ahí en us10,00.

Deberían ser honestos, si venden los códigos que así sea... pero déjense de tonteras, por cada respuesta que das no se llega a ningún lado. Dices, lo que hacemos es compartir.. que has compartido???

Alexander terminó por aburrirse de pedirte el código, prácticamente te rogaba para que se le mostraras, a fin de cuenta, nadie usa el código de otro en su totalidad, solo se toma como referencia, así se puede decir, lo adapté a mis necesidades.

En fin, Juan Pablo Torres, si eres chileno, deberías postularte a consejal viejito, tienes mucho bla bla.

Dan ganas de putiarte porque eres indolente a los comentarios que hacen los usuarios, no vale la pena.

Como dice una vieja loca de la tele...CASO CERRADO!

Se termina mi vista a este blog.

Juan Pablo Torres dijo...

Estimado Unknown (desconocido), lamentamos mucho tus comentarios ya que aquí en el blog que tanto nos ha costado que ni siquiera es un servicio porque solo se trata de compartir. Donde tenemos más de 40 artículos donde dejamos todo. Y tu que intentas dejar comentarios mal intencionados cuando en el blog esta todo lo que se necesita para hacer eso. Solo que hay gente que cree puede tener todo sin intentar siquiera pensar o utilizar los conceptos que aquí damos. Este blog no es para dejar un código, es para dejar una idea, un concepto, intentando motivar a las personas. En cambio hay gente que solo intenta con masilia y con comentarios poco inspiradores obtener algo que creen que merecen.
Por último aquí en todo momento tratamos de ser positivos y tratar a la gente con respeto.
Saludos

JHON HADER YONDA GUZMAN dijo...

excelente trabajo amigo, yo actualmente poseo un problema con un combobox, y has compartido algunos archivos pero el de este vídeo no lo encuentro en el blog, esta la versión sin activex, es posible que lo compartas, seria de gran ayuda.

Juan Pablo Torres dijo...

Hola amigo, revisa la lista de artículos.
Sds

Andres Anacona dijo...

hola amigo estoy tratando de hacer algo exactamente asi, podrías ayudarme con los comandos que usaste para que el combobox haga eso por favor

Juan Pablo Torres dijo...

Hola, cómo estas amigo! Esta todo en nuestros artículos pero sin embargo para seguir aclarando el tema hicimos un nuevo artículo y ahí esta todo. Usamos básicamente lo que ya se había visto.
Esperamos tus comentarios.
Saludos