viernes, septiembre 26, 2008

Autocompletar en Validación de Datos

Toda persona que haya usado Excel por algún tiempo conoce la funcionalidad Validación de Datos. Una de las características más "sexy" de esta funcionalidad es la posibilidad de crear listas desplegables con facilidad.

En notas anteriores ya hemos mostrado como podemos mejorar aún más esta función creando listas desplegables ordenadas o listas desplegables dependientes.

Pero lo que falta en validación de datos es la funcionalidad autocompletar. Esto es importante cuando tenemos listas con varias decenas o centenas de miembros.

Supongamos que creamos una lista desplegable con todos los países del mundo (o casi todos, según Wikipedia) . Esta lista tendrá 247 miembros. Para facilitar la búsqueda de un país determinado podemos ordenar la lista alfabéticamente, pero de todas maneras si buscamos Zimbabue o Yemen tendremos que pulsar el ratón o el teclado decenas de veces.
La solución es imitar en la lista de validación de datos el comportamiento Autocompletar como existe las celdas de una hoja. La idea es que si pulsamos B aparezca Bahamas, si pulsamos Br aparezca Brasil, etc.

Para lograr esto podemos incorporar a la hoja de Excel un control ActiveX. En este caso usaremos un cuadro combinado (ComboBox).



En nuestro modelo hemos puesto el cuadro combinado sobre la celda B1 y enseguida mostraremos como dirigimos la elección de la lista a la celda B3



Para poder seleccionar el objeto activamos primero el modo de diseño



Luego seleccionamos el cuadro combinado con un clic y abrimos el menú de las propiedades del objeto



En LinkedCell ponemos B3, el ListFillRange ponemos Hoja2!A1:A247 (que es donde tenemos la lista de países) y en MatchEntry ponemos 1-fmMatchEntryComplete



También podemos cambiar otras propiedades como la fuente y el aspecto del objeto.

Cerramos el cuadro de propiedades y cancelamos el modo de diseño haciendo clic sobre el icono.

Ahora al abrir la ventanilla del cuadro combinado vemos los primeros 8 miembros de la lista (también esta propiedad puede ser cambiada en el cuadro de propiedades del objeto). Los miembros aparecen en el orden en que se encuentran en el rango de origen.



Pero lo más interesante es que podemos escribir directamente en la ventanilla y los países aparecerán de acuerdo a las letras que hayamos escrito

Al poner B aparece automáticamente Bahamas



Si agregamos ahora "r", el valor se convierte en Brasil. Nótese que el valor en la celda ligada, B3, se actualiza instantáneamente



Todo sobre listas desplegables en Excel, técnicas avanzadas y descarga gratuita de ejemplos  en la Caja de Herramientas Excel - Listas Desplegables de JLD. Ver la nota o ir a la página de descarga de la guía.


Technorati Tags:

93 comentarios:

  1. Hola, lo primero darte las gracias por este blog que es muy útil.

    Y lo segundo comentarte una duda: ¿Cómo puedo hacer para poner un hipervínculo a los nombres de la lista? Así cuando seleccione una de las opciones se me habra la página.

    No sé si será posible pero haí lo dejo.

    Un saludo

    Álex

    ResponderBorrar
  2. Don Jorge: muchas gracias por su valiosísimo blogger. Esta pregunta en el tema "Autocompletar en validación de datos" era justo lo que buscaba; la respuesta es sabia. Necesito saber cómo repito esa opción, ese ComboBox o ese cuadro combinado en 125 filas de la A2 a la A126 sin tenerlas que copias una a una. Mil Gracias, estaré pendiente de su respuesta.

    ResponderBorrar
  3. Hola Gustavo

    Creo que la solución será usar una macro para imitar la validación de datos sobre un rango de celdas. Otra alternativa sería elegir de la lista combinada y usar un evento para poner la selección en una celda determinada.
    Estaré publicando algo en los próximos días.

    ResponderBorrar
  4. Sr. Jorge
    Gracias por su blog, muy instructivo.
    Me gustaria saber como hago para luego de tener en el cuadro de busqueda lo que estaba buscando: dar enter y se me vaya agregando en una hoja en la columna B osea
    busque la ultima entrada de una columna y en el proximo espacio en blanco me haga la entrada.
    Gracias

    F. Breton

    ResponderBorrar
  5. Frank

    tu consulta es un tema que se repite con bastante frecuencia, por lo que estaré publicando una nota sobre el tema en breve.

    ResponderBorrar
  6. Hola Jorge, muy bueno el blog.
    Estoy tratando de filtrar una lista por fecha y hasta ahora no lo he conseguido. Desearia que puedas ayudarme.
    La lista es de varios años y necesito extraer solamente el ultimo dia habil del mes.
    En otra lista solamente los dias viernes.
    Gracias por tu ayuda.

    Ariel

    ResponderBorrar
  7. Existen dos posibilidades: con Autofiltro o con Filtro Avanzado. Para usar Autofiltro tienes que crear una columna auxiliar con una fórmula que calcule si una fecha es el último día hábil del mes. Esta fórmula no es sencilla y estaré publicando una nota sobre el tema en breve.
    Si queremos ahorrarnos la columna auxiliar podemos usar Filtro Avanzado, usando la fórmula como criterio.

    ResponderBorrar
  8. Se me pasó lo de los viernes. Puedes crear una columna auxiliar con la fórmula

    =DIASEM(A2,2)=5

    Este fórmula da VERDADERO si el la fecha de la celda evaluada cae en un viernes. Así puedes filtrar la lista de acuerdo a este criterio.
    O usar la fórmula como criterio en Filtro Avanzado.

    ResponderBorrar
  9. Muchas gracias Jorge, por la respuesta.
    Esperare tu nota con la formula para filtrar los dias habiles. Ademas del ultimo dia habil del mes, en otra lista, necesito el primero, pero supongo que con la misma formula, cambiando los parametros, se podra realizar.

    Gracias nuevamente por tu ayuda.

    Ariel

    ResponderBorrar
  10. Y como funcionaría cuando el ComboBox está dentro de un formulario? O en su defecto en Office 2007

    ResponderBorrar
  11. Gracias Jorge por la ayuda que brindas... pero tengo una consulta.. realize todo el procedimiento pero cuando quiero realizar la busqueda de un valor con el resultado del cuadro combinado me arroja #N/A y si le pongo el valor manualmente si me busca... cual puede ser el problema..???

    Saludos.

    ResponderBorrar
  12. Tenés que usar el control de la barra de Controles (ActiveX). ¿Puede ser que estés usando el control de la barra de formularios?

    ResponderBorrar
  13. Hola Jorge me llamo Christian y tengo 3 columnas de datos, cree una lista desplegabla y utilice buscarv para mostrar los resultados en otras celdas, mi problema es que como tengo una lista tan grande de datos sería genial que pulsando una letra ejemplo "P" vaya hasta el grupo de datos que empieces que empiece con esa letra
    Graicas

    ResponderBorrar
  14. Justamente de eso se trata la nota...

    ResponderBorrar
  15. Hola Jorge nuevamente Christian yo cree la lista mediante la validación de datos/ configuración/ lista, no con el combobox, es el mismo criterio para este caso?
    Gracias por la respuesta

    ResponderBorrar
  16. Christian, sigue sin estar claro. Lo que muestro en la nota no se puede hacer von Validación de Datos.

    ResponderBorrar
  17. Hola Jorge

    Tengo esta inquietud deseo que la propiedad ListfillRange del ComboBox me permita colocar un nombre definido en el libro actual que hace referencia a una lista dinamica de otro libro

    gracias por la atencion

    ResponderBorrar
  18. Creando una referencia que incluya el nombre del libro y la hoja que contienen el rango. Pero la referencia funcionará sólo si el cuaderno remoto está abierto.
    Te sugiero que investigues en los foros de Vba.

    ResponderBorrar
  19. Alfonso Reynaga10 abril, 2010 02:18

    Muy buena la explicacion... pero quisiera saber como puedo hacer para que una ves que aparezca el nombre del pais en la celda B3, con un ENTER o CLICK pasar a la siguiente celda B4 y buscar un nuevo nombre y asi sucesivamente B5,B6,B7......Bn GRACIAS

    ResponderBorrar
  20. Programando un evento. Puedes hacer una búsqueda en el blog con la palabra "evento" o fijarte en la etiqueta "Macros".

    ResponderBorrar
  21. Muchisísimas gracias, he estado buscando varias horas la respuesta a cómo autocompletar listas y eres el primero en darme una solución.

    Lo único malo es que mi portatil es mac y el office.os. no admite los controles activex. Pero mañana en el trabajo le dedico un rato.

    Muchas gracias otra vez

    ResponderBorrar
  22. Hola Jorge, este artículo, así como tu blog, es excelente.
    Quisiera saber si has publicado algo acerca del tercer comentario desde arriba (copiar el ComboBox a muchas filas).
    Mi idea es poner el ComboBox en una celda (ej:A1) y que el output (LinkedCell) quede en la misma celda (A1), y así para varios cientos de filas consecutivas(ej: A1:A1000), con un ComboBox por celda.
    La idea sería copiar a todas las filas de la manera más eficiente posible.
    Gracias por compartir tu conocimiento, es invaluable.

    ResponderBorrar
  23. Hola Daniel,
    como dijo aquel político, "es verdad que pormetí, pero no prometí cumplir!". No veo otra solución que crear una macro que crea las combobox "al vuelo".

    ResponderBorrar
  24. Hola muchas gracias por elo comentario me fue de gran ayuda :)

    ResponderBorrar
  25. Hola jorge tu pagina me ayuda muchisimo, mi pregunta es como puedo autocpmpletar en listas dependientes con validacion de datos. Gracias

    ResponderBorrar
  26. Marcos,
    todo esta nota explica como hacerlo. O tal vez no he entendido tu consulta?

    ResponderBorrar
  27. Hola Jorge, excelente pagina la tuya, justamente le estoy metiendo mas punche al excel y es verdad, hace cosas extraordinarias, mi problema es que tengo mi lista deplegable de clientes los cuales al escoger me generan todos sus datos para despachar sus productos, el tema es que tengo 200 clientes y se me haria mas facil autocompletar la lista, hice tu metodo y funciono a la perfeccion el problema es que no puedo copiar esa informacion porque yo guardo cada pedido por separado y me gusta copiar la informacion en bloque para poder seguir trabajando, hay alguna manera de copiar ese control activex y que me genere los datos en la celda que yo quiero? Muchas gracias por la respuesta y espero haber sido claro.
    saludos

    ResponderBorrar
  28. No estoy seguro de haber entendido la consulta. Si se trata de crear un control en cada celda, bastaría con Copiar y Pegar, pero no me parece una buena solución. Tu modelo estaría "inundado" por controles que se usan una única vez.
    Si me mandas tu archivo o un ejemplo podré hacerme una idea más precisa del problema.

    ResponderBorrar
  29. Muy agradecido de tus aportes, especialmente por forma en que explicas cada acción. Lamentablemente, esta forma de autocompletar para listas no funciona para columnas enteras, solo para encabezados, si mal no entiendo. De todas formas fue un buen ejercicio.

    ResponderBorrar
  30. Cuando queremos listas desplegables para rangos extensos la mejor herramienta es la Validación de Datos. El problema es que las listas de validación no tienen la porpiedad de autocompletar. El método que muestro no está restringido a encabezados, pero si para usarlo en un rango habría queincristrar un control en cada celda, lo que no es muy práctico que digamos...

    ResponderBorrar
  31. buenas tardes, tengo una consulta para hacerte:
    se deseo bloquear la hoja de calculo en excel como hago para que la lista desplegable no se bloque, ya que al escribir texto en esta, el archivo me pide desbloquear la hoja. gracias

    ResponderBorrar
  32. Andrés,
    supongo que te refieres a proteger la hoja. Lo que hay que hacer es quitar la marca de protección para la celda usando el menú de formato de celdas.

    ResponderBorrar
  33. SI, ME REFIERO A PRETEGER LA HOJA, PERO AUN quitandole la proteccion a la casilla de verificacion usando el menu formato de celda, esta no me permite escribir texto para que se autocomplete el texto, solo me permite desplegar la celda.

    ResponderBorrar
  34. Andrés, he probado tanto con una lista desplegable de validación de datos como con un control ActiveX incrustado en la hoja protegida y si la celda ligada está desprotegida todo funciona sin ningún problema.
    Te sugiero que me mandes el archivo para que pueda ver donde está el problema.

    ResponderBorrar
  35. ok gracias ya lo solucione. tenias toda la razon

    ResponderBorrar
  36. me sirvio mucho tu explicacion, gracias, pero necesito que cuando aparesca el nombre de lo que necesito al yo darle enter se desplace a otra celda inferior y me permite seleccionar otro material por ejemplo para hacer una factura tomando los materiales de una base de datos en otra hoja

    ResponderBorrar
  37. Bien, eso no tiene nada que ver con validación de datos. Se puede definir el movimiento del cursor en Opciones de Excel - Avanzadas - Opciones de Edición y establecer que la selección se mueva hacia abajo al apretar Enter.

    ResponderBorrar
  38. Buenas Tardes:
    Muy buena la explicación, pero como podria a partir del desplegable una vez realizada una selección, realizar otra y que la situe en la celda posterior a la que ubique la primera selección.
    Gracias

    ResponderBorrar
  39. Como continuacion a mi pregunta anterior, me valdría el mismo caso que el solicitado por john quintero en fecha 26 marzo de 2012 a las 16:21.

    ResponderBorrar
  40. Tienes que poner una lista desplegable dependiente en la segunda celda. En esta nota pongo un ejemplo básico.

    ResponderBorrar
  41. Estimado Jorge
    te estoy muy agradecido por esta explicacion ya que me ha resuleto un terrible problema. Te pido por favor me diga como hago para hacer dos cosas, 1- Ir al ComboBox sin usar el mouse, imagino que con una combinacion de teclas y 2 ( esto si es posible) que el Combo ya este libre para ingresar el proximo dato. Mi manejo de VBA es bastante escazo y no si con la forma de resolver este problema. Desde ya muchisimas gracias.

    ResponderBorrar
  42. Es importante este articulo, pero me gustaria saber si se puede utilizar la función autocompletar que tiene el propio excel cuando se llena una celda. Además seria de ver si es posible mostrar en una lista las aproximaciones a lo escrito

    ResponderBorrar
  43. Pablo, la única forma es crear una macro que active la combobox (muy sencillo) y asignarla a una combinación de teclas (también sencillo)

    ResponderBorrar
  44. Excel permite activar y desactivar la funcionalidad autocompletar, pero no crea listas de valores aproximados. Sólo podrías hacerlo programndo un control.

    ResponderBorrar
  45. Jorge me resulto de mucha ayuda autocompletar, pero tengo una duda,
    Yo tengo varias listas de provincias con sus respectivas ciudades y a través de la validación de datos y con la formula indirecto, logré que al elegir una provincia me arroje en la otra lista solo las ciudades correspondientes a esa provincia,
    Como hago lo mismo con la función autocompletar a través de un control activex, porque en las propiedades del combobox no me dejo introducir la formula indirecto, esto es posible?.
    Muchas Gracias
    Saludos,
    Maxi

    ResponderBorrar
  46. Tenés que crear un nombre que se refiera a la fórmula y usar este nombre en ListFillRange en el combobox.

    ResponderBorrar
  47. Hola Jorge, en primer lugar felicidades por tublog, y decir que eres un maestro excepcional, mi pregunta se refiere a la formula buscarv, si pongo=BUSCARV(F3;'BASE DE DATOS'!A1:Q1993;12;FALSO)y resulta que el dato esta en blanco esa celda me pone "0" y yo quisiera que se quedase en blanco en lugar de poner 0, existe el modo????

    ResponderBorrar
  48. La mejor solución es usar formato personalizado de números.
    La sintaxis del formato de números es "positivo";"negativo";"cero";"texto". Si dejamos la parte del cero vacía, por ejemplo

    #,##0;[Rojo]-#,##0;;

    no muestra ningún valor para los ceros.

    ResponderBorrar
  49. Don Jorge.-

    muchas gracias por su valiosa ayuda, estoy muy agradecido de todo lo que me a ayudado, por el mismo motivo quisiera poner en mi grupo de trabajo su direccion, ¿habria algun problema?, muy amable y que este muy bien.

    atte macc

    ResponderBorrar
  50. Macc, no hay ningún problema (supongo que te refieres al URL del blog). Mi dirección de correo electrónico se puede ver en el enlace Ayuda.

    ResponderBorrar
  51. Jorge, felicitaciones por tus notas novedosas.

    Quiero preguntarte si es posible conseguir el mismo resultado pero con validaciòn de datos de la pestaña datos..

    Gracias

    ResponderBorrar
  52. No, solo con el control ActiveX como muestro en la nota.

    ResponderBorrar
  53. Jorge,

    Buenas tardes excelente publicación y quisiera hacerte la siguiente consulta:

    Supongamos que la celda B3 de tu ejemplo antes tenía una validacion de datos de una lista desplagble de proveedores, con la opción autocompletar me ahorro la busqueda, sin embargo con el control active x selecciono un proveedor y además le di un espacio al final (con la intención de que al enviar la información a la celda B3 me enviara el error de Valor No valido) el problema es que la celda si aceptó dicho dato.

    ¿Que opción en las propiedades debo seleccionar para que unicamente acepte los datos de la lista desplegable?

    Ya tengo esa opción en la celda de destino y aún así sigue aceptando el dato desde el control active x

    Espero tu valioso apoyo

    ResponderBorrar
  54. Al usar el combobox incrustado en la hoja no tenemos la posibilidad de realizar una validación de datos real (si bien existe la propiedad Match Required). Para hacer una validación de datos con el combobox tendremos que programar el control.
    Más adelante publicaré algo sobre el tema.

    ResponderBorrar
  55. Disculpen trabajo con listas personalizadas en excel 2007, pero al trabajar con excel 2010 con el mismo archivo al cerrar y abrir dicho archivo se me borran las condiciones de la lista personalizada. Agradeceria si me colaboran indicandome si hay alguna opción para hacer que mis condiciones no se borren.

    Julio Barreto

    ResponderBorrar
  56. Julio,
    ¿podrías ser un poco más explícito? Listas personalizadas son listas de texto que nos permiten, por ejemplo, introducirlas en su orden arrastrando el mouse (por ejemplo, lunes, martes, etc.). No hay nada en ellas que se relacione con condiciones. ¿Tal vez te refieras a listas desplegables creadas con validación de datos?

    ResponderBorrar
  57. Hola Jorge gracias por tu colaboracion, si correcto son listas desplegables con validacion de datos, es decir yo tengo mi base de datos en un libro del mismo archivo, en otro libro creo la base para que seleccionar solo los datos de la otra en mencion, con excel 2007 trabajo bien, pero al abrir el archivo en excel 2010 la primera vez la abre bien desde un correo por ejemplo al guardarlo y volver abrir, se me borra el criterio de esta validacion en las celdas, pero curiosamente me queda la imagen de lista desplegable junto a la celda (triangulo invertido) pero no hace nada. Pienso que será alguna opcion nueva de la version 2010. Agradezco Jorge tu atencion y si de pronto te puedo pasar el archivo a tu correo.

    Julio Barreto

    ResponderBorrar
  58. Julio,
    leyendo "entre líneas" veo que el proceso es que abres el archivo que viene en un mail y luego lo guardas. Al guardalo, Excel guarda la ruta al segundo libro. Pero los libros los guardas en otra carpeta y es así que Excel no puede encontrar la ruta al cuaderno remoto. Tendrías que corregir las referencias de la validación de datos.

    ResponderBorrar
  59. Buenas Tardes
    Muy buen articulo, aun despues de un par de años es muy util encontrar información como esta, espero que todavia este vivo el hilo para la siguiente consulta:

    Inserte el control activeX según el procedimiento, pero en la propiedad quiero definir que el rango este definido por un nombre que esta definido con la funcion DESREF, pero el control no me acepta escribir el nombre del rango, hay algo que tenga que realizar adicional?

    Muchas gracias y muy buen articulo!

    ResponderBorrar
  60. Hola Carlos, puedes usar nombres para la propiedad ListFillrange pero tienes que asegurarte que el ámbito del nombre sea el libro o la hoja que contiene el control.

    ResponderBorrar
  61. Muchas gracias, ya funciono el control! le agradezco mucho! y nuevamente, muy buen articulo.

    ResponderBorrar
  62. Estimado, en primer lugar mis más sinceras felicitaciones y agradecimiento por el tiempo dedicado a instruir a otros en estas importantes materias. Me permito dirigir, tanto a usted, como al resto de los lectores, la siguiente inquietud: Deseo crear una lista de forma tal que al elegir uno de los elementos de ella, en otras celdas se completen datos de forma automática... me explicaré con más claridad: supongamos sea una lista de proveedores (por ejemplo) y deseo que al seleccionar uno del listado, me arroje su mail de contacto, teléfono, etc... Gracias desde ya por su ayuda.

    ResponderBorrar
  63. Una de las formas de hacerlo es usando la función BUSCARV. Puedes fijarte en la ayuda de Excel para ver ejemplos.

    ResponderBorrar
  64. hola, tengo una consulta, me funcionó a la perfección lo que se explicó, pero yo quiero que una vez que ya haya elegido la opción país tener una casilla abajo que me muestre las ciudades de ese país y que yo pueda seleccionarla. Así mismo, una vez elegido el país que en la línea de abajo yo pueda elegir los barrios de esa ciudad. Es posible? muchas gracias por la ayuda.

    Como hago para crear varias listas dependientes?

    ResponderBorrar
  65. Fijate en esta nota y también en esta otra.
    En los próximos días estaré poniendo a la venta una guía completa sobre el tema de creación de listas desplegables.

    ResponderBorrar
  66. Hola Jorge,
    quisiera saber como hacer para que la opcion que selecciono del Combo Box se quede en la misma celda y no tenga que botar el resultado en una nueva.
    Además saber si puedo luego "jalar" ese dato mediante un macro a otra hoja.

    Slds,
    Noelia

    ResponderBorrar
  67. Poniendo la dirección de la celda deseada en la propiedad LinkedCell del control (fijate en el ejemplo).

    ResponderBorrar
  68. Hola Jorge.

    Primero, felicitarte por el tiempo que dedicas a los que seguimos tu blog y la gran ayuda que das. Quisiera saber si es posible que publiques la solución al tema de la lista desplegable en el combo boxun rango de celdas. Es decir, que cuando me mueva hacia otra celd, mantenga sus propiedades y cada vez este relacionado con la celda donde esta ubicado, mientras que desaparece el objeto en la celda anterior.

    ResponderBorrar
  69. Hola Felipe,

    gracias por la sugerencia. Publicaré una nota sobre el tema.

    ResponderBorrar
  70. Amigo Jorge excelente aporte, tengo una consulta, tengo una lista definida con un nombre, el cual va aumentando conforme se registran nuevos clientes esto con el desfer, sin embargo cundo hago la lista desplegable con el ActiveX no se actualizan los nuevos clientes a pesar de que el desref si los esta considerando, quizás estoy omitiendo algo, favor tu apoyo.

    Slds.

    ResponderBorrar
  71. Buenas Noches, Jorge.

    Te comento que hice una prueba y me funcionó correctamente. Lo único, que cuando presiono "enter" no reacciona, y tengo que seleccionar la siguiente celda. Sin embargo, transcribí tu ejemplo y si funciona perfectamente al presionar "enter". Que crees que esta pasando con mi prueba?

    Muchísimas Gracias.

    ResponderBorrar
  72. Felipe y Anónimo, necesitaría ver los archivos. Se pueden mandar siguiendo las instrucciones que aparecen en el botón Ayuda (en la parte superior de la plantilla).

    ResponderBorrar
  73. Por favor quisiera saber si tengo un cuadro combinado con datos, ¿como puedo mostrar el dato que seleccione en esta lista en una celda elegida?

    ResponderBorrar
  74. Al igual que el combobox, el cuadro combinado tiene la propiedad "linked cell" (celda ligada). Esta propiedad se puede definir en forma estática en el formulario de las propiedades o en forma dinámica usando programación.

    ResponderBorrar
  75. Hola Jorge, tengo un problema similar al que aparece arriba, tengo un archivo excel en una carpeta, En validación de datos creo una lista desplegable para escoger ciertos criterios (nombres de vendedores y vigencia de la cotización) todo muy bien, pero cuando lo guardo, lo cierro y lo vuelvo a abrir todos los cambios se guardan excepto las listas desplegables. A lo mucho queda únicamente el ícono (el cuadro con la flechita hacia abajo) pero sin ninguna función, solo el dibujo. ¿Me podrías ayudar por favor?

    ResponderBorrar
  76. Guillermo,si creas la lista con validación de datos la flecha sólo aparece cuando seleccionamos la celda que la contiene. Por lo que deduzco que estás usando una combobox como se explica en la nota. Si ésta queda vacía es porque no has definido correctamente el rango en la propiedad ListFIllRange de la combobox.

    ResponderBorrar
  77. Hola Jorge, ante todo muchas gracias por tu blog.
    He estado mirando otras consultas para ver si daba respuesta a mi problema pero veo que está muy solicitado y poco solucionado para algo que a priori EXCEL debería haber resuelto en las ultimas versiones.
    Necesito crear una lista desplegable con funcion de autocompletado para que al ingresar las primeras letras me discrimine de toda la lista. Lo he hecho con la validación de datos y con el Combobox pero no consigo lo que quiero, ya que no puedo activar la tecla Enter para meter el dato ya seleccionado. Ademas a la hora de imprimir me aparece el boton del combobox tal cual aparece en pantalla.
    No se si me he explicado bien pero he cambiado del 2003 al 2013 y no ha evolucionado en éste aspecto.
    Ante todo mil gracias puedas o no resolverme la consulta.

    Un saludo Javier.

    ResponderBorrar
  78. Si no queré que Excel imprima el objeto, tenés que cambiar la propiedad PrintObject a False (para el control ActiveX).

    En lo que hace a la disriminación de valores no me queda del todo claro. ¿La idea es que al empezar a escribir un texto se vena todos los valores de la lista que empiezab con ese texto?

    ResponderBorrar
  79. tomassuarezolea21 mayo, 2014 19:01

    Buenas tardes. Si tengo un combobox que me elige por ejemplo el nombre de los paises, y quiero otro combobox que dependiendo del anterior, el listFill range cambie, como lo hago? He intentado hacerlo nombrando los rangos y no lo consigo, formulando tampoco....
    Muchas gracias de antemano

    ResponderBorrar
  80. EN el blog hay varias notas sobre el tema, por ejemplo esta.
    Puedes ver todas las pulsando la etiqueta Listas Desplegables en la nube de etiquetas.

    ResponderBorrar
  81. Hola Jorge... muy valiosas todas tus explicaciones.

    Siguiendo con éste tema.. como puedo hacer si necesito crear por ejemplo una lista de material a utilizar en un trabajo. Es decir seleccionar una y otra vez materiales de la lista desplegable, para que me al final me resulte una lista con todos los materialesa utilizar... me explique? Gracias de antemano !

    ResponderBorrar
  82. Hola, se puede hacer pero no con una Combobox sino con un ListBox (cuadro de lista). No tengo nnguna específica sobre el tema. Estaré publicando algo sobr el tema, cuando vuelva de mis vacaciones en Florencia :)

    ResponderBorrar
  83. Hola Jorge, después de muchos años vuelvo a las andadas con macros y nuevamente tienes las respuestas exactas a mis dudas. Te felicito por mantener el sitio por tantos años. Un gran abrazo desde Chile.

    ResponderBorrar
  84. Buenas tardes
    Tengo una consulta, que tal si no quiero empezar desde la primera letra?
    por ejemplo: uno de mis clientes esta registrado asì, I.E.P. Santa Rosa pero no quiero escribir primero I.E... sino ir directamente a Santa... y que se autocomplete.
    Es posible hacer eso??

    ResponderBorrar
  85. No, no se puede hacer con las propiedades del combobox (o listbox).

    ResponderBorrar
  86. José Ángel Pimentel17 abril, 2017 12:50

    Buenos Días Jorge, exclente, gracias por eso, me pregunto lo siguiente ¿Alguna de éstas herramientas tiene alguna función directa para crear listas desplegables con autocompletado? Es que he estado incrustando cuadros combinados con ActiveX y no sé de que manera hacerlos salir en una celda en sí (es que quedan flotando como un objeto) y que asu vez al elegir lo que quiero de esa lista pues pueda usarlo para dinamizarlo en una tabla en el futuro, ojalá puedas orientarme, gracias.

    ResponderBorrar
  87. José, no me queda clara tu consulta. De todas maneras: listas creadas con Validación de Datos no tienen la propiedad de autocompletar. Como pongo en la nota, si queremos una lista desplegable con la propiedad de autocompletar, hay que crearla con un control ActiveX. Estos obejtos no pueden ser parte de una celda, "flotan" sobre el cuaderno. Creo que en alguna nota mostré una técnica para que al activar alguna celda de un tango aparezca una una combobox con autocompletad. Creo que eso soluciona tu problema.

    ResponderBorrar
  88. Hola, necesito auto completar pero no con la primera letra, por ejemplo buscar café de 170gs y poner 170 y que me traiga todas las opciones, gracias

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.