Saltar al contenido

Combobox con opción de búsqueda inteligente


Recommended Posts

publicado

Hola, antes de nada, quiero decir que lo de búsqueda inteligente lo he llamado así porque la información que he visto lo así lo llaman, pero a pesar de ver como realizan este tipo de búsqueda en un Combobox no consigo hacerlo funcionar.

Tengo un formulario desde donde puedo realizar dos tipos de búsqueda, uno de ellos es mediante un Combobox, donde intento que al escribir una parte de texto y se muestre el listado con los nombres que contiene es texto.
He visto que para poder conseguir este resultado hay que configurar MatchEntry = 2 – fmMatchEntryNone, pero tampoco consigo nada.

Os dejo el archivo por si alguien sabe cómo mostrar este tipo de información en un Combobox y me puede echar una mano.

P.D. ahora se muestra un listado normal y ordenado, y he dejado desactivadas unas opciones de búsqueda con las que he estado probando sin suerte, igual le faltan depurar algo mas.

Gracias.
 

Doble busqueda.xlsm

publicado

¿Que tal @JuanP

Te dejo una opción que utiliza SQL para la carga del campo Nombre y para realizar lo que quieres, he clonado tu formulario y lo modifique un poco.

Te invito a estudiar el código SQL, que aunque lo que hice aquí es sencillo tiene mucho potencial al combinarlo con VBA.

Saludos !!

Doble busqueda.xlsm

publicado

Hola AlexanderS, la verdad que ya me esta costando un poco, si me tengo que meter con el SQL para terminarlo me va a resultar costoso, tendría que cambiar todo el formulario, hay muchas mas partes que en el archivo adjunto no las he puesto para no llenarlo de código, y fuese más fácil.

De verdad que te lo agradezco, pero no se podría hacer sin SQL, o ver en el código que tengo desactivado en el formulario donde estoy metiendo la pata para que no funcione.

Un saludo.

publicado

Hola JuanP, creo que tendrías que estudiar bien el funcionamiento del código que te ha pasado AlexanderS,  porque para los que estamos aprendiendo como yo, esto es oro puro. Para saber interpretarlo tampoco hace falta tener conocimientos de SQL, anímate y aumenta tus conocimientos, yo lo hago todos los días, un saludo.

publicado

Hola JSDJSD, si no digo que no sea una información valiosa, pero si no me entero de este código como voy a meterme con el SQL, jeje

Lo mismo te digo con lo que está por venir con el TypeScript o Javascrip, aunque creo que estos ya no me van a pillar.

Si con lo que sabes dices que estas aprendiendo, pues yo ni te digo, todavía estoy con los dientes de leche jeje, todavía me queda mucho por aprender con este, si es verdad que el saber no ocupa lugar, pero creo que, si no se tiene una base firme, subir un peldaño más seria peor.

 Y si con este cuando me surge un problema me paso el día viendo ejemplos y videotutoriales, y cuando veo que me es imposible, me toca preguntaros.

Así que si alguien me puede echar una mano se lo agradecería.

publicado

Gracias JSDJSD.

Hola bigpetroman, lo puse así, si te acuerdas del nombre completo vale, pero si no te acuerdes de si nombre, y si del apellido es mejor está opción.

publicado

Muchas gracias JSDJSD, pero no es eso lo que intento hacer, bueno si que filtre los nombres, si te fijas en el código del primer archivo, lo que utilizo en un cuadro combinado y no un TextBox, lo adapto a la ficha que tengo creada, por lo que el ListBox tampoco es la solución, por eso por lo que pregunto es como hacerlo en un Cuadro Combinado.

 

 

publicado

No se si te entiendo, lo que pretendes que es que cuando vas digitando en el cuadro combinado solamente te cargue en este aquellos nombres que contenga dichos dígitos?

Pon un antes y un después para que podamos ver lo que pretendes.

publicado

Gracias AlexanderS, 

JSDJSD es como lo hizo AlexanderS con el codigo SQL

Y AlexanderS cuando termine si empiezo a ver videotutoriales sobre como trabajar con SQL no te digo que no lo voy a ver, si tu que estar utilizando los dos dices que puede resultar mas facil trabajar con SQL, pues le ire pegando un vistazo.

Sobre este ultimo archivo que has subido, se queda como en una de las pruebas que hice, la lista se muestra debajo de su celda, no se despliega, y hay que pulsar sobre las pequeñas flechas que tiene al lado derecho para visualizar el texto, mira como sale

33ehB.png

 

publicado

Bueno eso si no me equivoco es un bug del control en si, por lo que sin importar el código vas a tener el mismo problema, tendrías que utilizar una instrucción diferente para cargar el control que no sea un .additem, puede ser con un .rowsourse o un .Column

Saludos.  

publicado

Gracias nuevamente bigpetroman, lo he descargado y lo he probado un poco porque hoy no he podido ver nada, iba a probar a ver si era capaz de conseguirlo con lo que comenta AlexanderS, con .rowsourse o .Column, pero tampoco he podido ver nada, a ver si esta tarde puedo pegarle un vistazo mas a fondo.

 

publicado

Hola, lo he estado probando y sí que puedo utilizarlo para este fin, aunque muestre dos listados, es lo que hay que tener en cuenta que uno se queda debajo del listado del combobox y si se despliega el listado de éste hay que volver a cerrarlo para que muestre el otro listado.

Lo dicho, gracias a los tres por vuestra ayuda. 

Archivado

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

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      187
    • Comentarios
      97
    • Revisiones
      28

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    1    1

  • Crear macros Excel

  • Mensajes

    • Hola nuevamente. Por eso la importancia de lo que mencionas tú como "ruta relativa". Tal cual comentas, y aún sin llegar a algunos detalles importantes para ayudarte, en realidad tal cual te comenté le día miércoles, pues sí podías hacer como comentabas, era cosa de obtener los Id de Windows (como tú los llamas) y la ruta de OneDrive en casa usuario y eso sí se puede obtener con VBA y luego pasarlo a PQ, pero medio que te cerraste en que "PQ no puede trabajar con rutas relativas", cosa cierta pero siempre hay formas. Si SAP puede o no guardar en OneDrive o SharePoint, pues si está mapeado en la PC ¡claro que se puede! Pero bueno, creo que si te es útil tu propia propuesta ¡avanza con eso!
    • Perdona @Abraham Valencia pero he estado liado estos días. En realidad todo el problema se reduce a estos dos problemas: Problema 1: El script que "fabrica" SAP y que luego "pego" en la macro, no es capaz de  guardar archivos en SharePoint. He estado buscando, y en realidad muchas personas tienen ese problema (no poder guardar un Excel en SAP a través de VBA). Eso muy probablemente sean problemas de permisos, que no puedo cambiar (no soy administrador de nada). Como no puedo solucionarlo así, paso al plan B, que es guardar en Excel que me genera SAP en el ordenador de cada usuario que ejecute la plantilla (y que sí está guardada en SharePoint), para después con PowerQuery llamar a ese Excel (el export). Para ello, pretendo guardar el export, en la ruta relativa "C:\..\..\..\OneDrive - NombreEmpresa\Documentos\SAP\SAP GUI" donde los \..\..\..\ saltan las rutas personales de cada usuario (tipo C:\users\IDusuario\). Eso lo hace bien, y el archivo se guarda en la ruta de cada usuario que lo usa, pero surge el problema 2 Problema 2: PowerQuery no trabaja con rutas relativas del tipo  "C:\..\..\..\OneDrive - NombreEmpresa\Documentos\SAP\SAP GUI" necesita que sea del tipo fija "C:\users\IDusuario\OneDrive - NombreEmpresa\Documentos\SAP\SAP GUI" pero claro, IDusuario es diferente para cada usuario.   Pero escribiendo todo esto, creo que he dado con una posible solución, no grabar el export en una ruta de usuario, sino en una en la raiz de C:, que siempre será igual para todos los usuarios, del tipo C:\Sap\export.xlsx que seria igual en todos los ordenadores. Asi sí podría decirle a PowerQuery que vaya siempre a la ruta C:\Sap\ que existirá en todos los ordenadores. Mañana intentaré hacer pruebas, aunque mi solución ideal seria que se pudiera guardar en el SharePoint. Saludos.
    • Hola La opción brindada por @torquemada es correcta, funciona, pero hay algunos inconvenientes que (desde mi punto de vista) no la convierten en mi primera elección. Los inconvenientes son: Tendrías que ir columna por columna haciendo los reemplazos, claro que no se harían a mano sino que utilizarías la opción reemplazar o la opción texto en columnas, aun asi demorará un poquito y será trabajoso. Cada vez que descargues otro listado, tendrás que volver a realizar los reemplazos. Me parece una mejor propuesta lo siguiente: Descarga los movimientos a un archivo de Excel Desde tu control de pagos (otro archivo) cargas los movimientos del archivo descargado mediante Power Query Power Query hará los reemplazos y reconocerá todo correctamente (sin que tengas que hacer nada especial) Cuando descargues los movimientos un día posterior, solamente tendrás que hacer clic en "Actualizar" y todo funcionará en automático
    • Hola a todos, Efectivamente, me temo que tal como trabajan las funciones =HOY() y/o =AHORA() (volátiles), sólo con macros puedes obtener soluciones. Un recurso pedestre podría ser, cada vez que quieras que se fije un dato, te sitúes en esa celda y pulses F2, F9 e INTRO.  Pero claro, puede ser un inconveniente si hay que hacerlo repetitivamente en muchas ocasiones,.............. en fin, lo comento sólo como posibilidad. Saludos,
    • Hola nuevamente, mi duda sigue siendo la ruta, o rutas, finales que quedan, esas que llamas "relativas"; igual por si acaso pon 3 o 4 de esas, tal cual son y/o se ven en el explorador de cada PC y, de ser posible, en cualquier otro "lado" en que las veas.
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.