Búsqueda con palabra clave en formulario ActiveX con Combobox

En otros artículos hemos vistos varios métodos de búsqueda en Excel. A la hora de buscar información de una base de datos extensa es muy útil. De acuerdo a su nivel de conocimiento de Excel  pueden utilizar cualquiera de ellos. Ver “Lista de Artículos”.

En este artículo vamos a acercarnos a una mini aplicación ya vista “Búsqueda inteligente con Combobox en Excel”. La diferencia es que se hacia la búsqueda de manera inteligente e incremental, es decir, a medida que introducíamos información en el combobox iba acomodando los resultados para mostrar. Sin embargo, ahora vamos a usar un evento click en un botón para realizar la búsqueda cuando introducimos la palabra clave. También nos va mostrando los resultados en una lista. De la otra forma hay que usar un evento “change” pero es más complicado controlar el código por la forma en que funciona el evento.


Click en la imagen para ver el video o en este Link.

Para explicar este método vamos a usar una pequeña plantilla de ejemplo.
Tenemos una lista de elementos ordenados que pueden ser productos, para el ejemplo basta:



Como ven, también tenemos un botón de lanzamiento. Si el formulario se llama “combo”, el código dentro de una macro sería.
‘macro que lanza el formulario
Sub ini()
combo.Show
End Sub
A diferencia del artículo anterior, agregamos un boton que llamamos “Search”.


Luego veremos el código que va a tener este boton de comando:
Private Sub Search_Click()
'limpio valores anteriores
ComboBox1.Clear
‘hago un bluque para agregar a la lista todos los ítemes que cumplan una condición
For i = 0 To 8
lista = Range("C" & 8 + i).Value
'reviso si el valor de la variable coincide con la key introducida
‘si coincide lo agrego a la lista
If InStr(1, lista, ComboBox1.Value, vbTextCompare) > 0 Then
ComboBox1.AddItem lista
End If
Next
'desplega la lista
ComboBox1.DropDown
End Sub
Otra cosa a tener en cuenta para que funcione el combo ,como esta previsto ,es cambiar el valor de ciertas propiedades. Para este caso:
‘esta propiedad permite efectuar búsquedas automáticas en la lista según la coincidencia del primer carácter o de todos a medida que se escribe.
                ‘para este caso no nos sirve y lo desactivamos.
                MatchEntry =2 – fmMatchEntryNone
El código es bastante simple, se utilizan sentencias simples. Sin embargo, si hay algo con el cual no estamos familiarizados, una variable, una propiedad, etc., pueden utilizar la ayuda de VBA con el botón F1 sobre la palabra. Sino lo pueden buscar en internet.

Ahora para terminar vamos a ver que pasa cuando utilizamos el combo de búsqueda.
Búsqueda sin palabra clave
SI chicleamos el botón sin colocar alguna palabra clave nos despliega la lista completa de elementos.


Búsqueda con palabra clave



La idea anterior volcada a nuestros formularios nos puede ser bastante útil para encontrar info. Como ven funciona.
-------------------------------------- FIN CÓDIGOS
Recuerden que los artículos algunas veces requieren un mayor o menor nivel de conocimiento en ciertos temas de Excel, por ejemplo formulas avanzadas, macros o VBA, etc. Sin embargo en los artículos se nombran todos los elementos y con esta información podemos hacer nuestras pequeñas investigaciones usando internet, así desarrollamos nuestro conocimiento. Por ejemplo si  utilizamos la función “Y”, que la suponemos conocida, y no sabemos ¿qué es? podemos buscar en internet para ver como se utiliza y cuales son los componentes. Las mini aplicaciones no son más que la recopilación de muchos elementos para dar forma a una nueva idea.

Pueden descargar algunos ejemplos (plantillas/templates) de la zona de Descargas. Si tienen alguna duda o consulta pueden hacerlo a través del formulario de contacto.

Les recomendamos que sigan el blog por alguno de los medios, mail o por redes sociales, para recibir las actualizaciones y novedades.
¡Éxitos!

Keys:
·         Búsqueda inteligente con formulario ActiveX.
·         Búsqueda incremental en Excel.
·         Combobox ActiveX.
·         Incremental search in Excel.

12 comentarios:

Miguel TAPIA MOLINA dijo...

Mala explicación, horrible la forma en que tratas de enseñar.
Con razón no hay ni siquiera un comentario.

Te dejo este... de limosnma!!

Juan Pablo Torres dijo...

Hola amigo, Gracias por comentar!
Es bueno que haya comentarios pero existe google analytics con el cual puedes ver el interés de las personas.
Por otro lado, los comentarios son comentarios, para preguntas y dudas esta el formulario de contacto. A través de él recibimos muchas consultas, también comentarios, etc.
Saludos

Ignacio rd dijo...

Tengo un problema cuando selecciono un item del combobox, no se me completa el id como aparece en tu ejemplo no hace nada

Juan Pablo Torres dijo...

Hola amigo, cómo estas! Gracias por comentar!
Seguramente estas omitiendo algo, en el ejemplo sencillo queríamos mostrar la selección del dato, luego deberías usar un evento click u change para hacer algo con el dato. Recuerda nos puedes escribir mediante el formulario de contacto. Saludos

Willy Uceda dijo...

me puedes enviar el archivo excel gracia uw_ucda_5@hotmail.com

Juan Pablo Torres dijo...

Hola amigo, cómo estas! En este artículo mostramos todos los detalles, es muy fácil de hacer.
Saludos

Gra dijo...

Hola! está muy buena la forma de buscar, pero me es imposible transformar la busqueda para que la haga directamente en el combobox, sin usar el boton BUSCAR
probé ponerlo en un evento change , pero evidentemente algo hice mal
Podrías poner esa variante aqui?
Muchas gracias!!!
muy utiles tus videos

Juan Pablo Torres dijo...

Hola amigo, cómo estas! Gracias por tus comentarios!
En cuanto a tu consulta, es más fácil con el botón porque si quieres utilizar el método change es muy complejo. Ese método hace que entres en una recurrencia cada vez que cambia algo del combo por lo que debes encontrar la forma de cortar esa recurrencia y ese es el problema. Se puede hacer, de hecho lo hemos hecho indirectamente en los otros artículos.
Saludos

Alonso pantigoso dijo...

por una parte agradezco que muestres en un vídeo que es posible hacerlo y por otro lado tu ejemplo no me sirve para nada :/ igual gracias

Juan Pablo Torres dijo...

Hola amigo, cómo estas! Gracias por comentar! Entendemos tu frustración. Esto es muy avanzado, en teoría no se puede hacer en Excel pero lo hicimos y tienes mas artículos posteriores sobre este tema.
Saludos

Cesar Alexander Acosta A. dijo...

Buenos días, gracias por el aporte. Tengo una duda. Si deseo agregar en la celda del excel mas datos hacia abajo, es decir, D, DD, DDD, E, EE, EEE, etc... como logro que el combobox tambien carge esos datos que agregué previamente? ya que solo me carga hasta el CCC... Muchas gracias por tu respuesta.

Juan Pablo Torres dijo...

Hola amigo, cómo estas! Gracias por escribirnos!
En cuanto a tu consulta, dada la complejidad de este tema, tuvimos que abordarlo varias veces y en varios artículos. Para entender en 100% la idea y captar el concepto te recomendamos que leas todos los artículos. Es la idea del blog.
Esperamos tus comentarios.
Saludos