Este artículo pertenece a nuestra serie dedicada a UserForms. Si es el primero que has visto, te sugiero iniciar por la primera entrega: Introducción a UserForms

Artículo anterior: UserForms | Controlar el ingreso de Textos

En esta sección de la serie de UserForms, dedicaremos un espacio a hablar de las listas desplegables. Las mismas, si las configuramos apropiadamente, pueden ser un aliado muy potente para lograr una óptima experiencia de usuario.

Comenzaremos por hacer un poco de espacio en nuestro formulario:


Y crearemos una etiqueta llamada “Sucursal”, donde para el caso de nuestro ejemplo, el usuario podrá elegir si pertenece a la sucursal Norte, Sur, Este u Oeste.

Lo que conocemos tradicionalmente como una lista desplegable, se encuentra para el caso de los UserForms en la herramienta Cuadro Combinado:


Y el procedimiento para agregarlo a nuestro formulario es idéntico al que hemos realizado para las demás herramientas:


Los cuadros combinados tienen dos propiedades que serán particularmente interesantes. Para acceder a ellas, hacemos un click sobre el mismo, y observamos la ventana Propiedades:


Comencemos por examinar la propiedad RowSource: esta representa el listado de origen, de donde provendrán los datos entre los cuales el usuario podrá elegir. En la práctica, esto representa el rango de datos disponible en una hoja de Excel.

Dado que esta propiedad puede asumir como valores tanto rangos explícitos (A1:B2), como nombres de rangos estáticos o dinámicos, crearemos para este ejemplo un rango llamado también sucursales en una nueva hoja, “Datos”:


Y al ejecutar el formulario, ¡dichas opciones estarán ahora disponibles!


Antes de proseguir, hay una propiedad adicional que vale la pena conocer: MatchEntry.


Esta refiere al modo en que se produce la coincidencia al ingresar algún valor en nuestro cuadro combinado (ya que podemos escribir en él como un cuadro de texto, y seleccionar las opciones que se desprendan de ello).

  • 0 – fmMatchEntryFirstLetter, refiere a la posibilidad de que se ingrese una única letra en nuestro cuadro combinado, para que el mismo sugiera las alternativas disponibles. Si varias opciones comparten la misma letra inicial, presionarla varias veces permitirá ir alternando entre opciones.

  • 0 – fmMatchEntryComplete, presenta un comportamiento semejante a las sugerencias de Google, donde al escribir algunos caracteres, se propone la sugerencia que mejor se ajuste a los datos ingresados:

  • Finalmente, 0 – fmMatchEntryNone, no plantea ninguna sugerencia:


Para todos los casos anteriores, sin embargo, el usuario tendría total libertad para escribir cualquier texto dentro del desplegable. Si bien esto puede ser útil en algunos escenarios, muchas veces la intención es que este desplegable no actúe solo como sugerencia, sino también nos permita tener un control estricto sobre las opciones disponibles. Para ello, debemos configurar la propiedad MatchRequired como True. Esto significa, que se requiere una coincidencia con las opciones disponibles, para considerar el ingreso válido (el usuario deberá seleccionar del desplegable).


Ahora, te recomiendo “jugar” con las opciones disponibles y ver qué ocurre con cada una de ellas.

Finalmente, intenta realizar la carga de la opción seleccionada a la base de datos, utilizando los procedimientos de los artículos anteriores. Puedes verificar la implementación completa en el archivo de ejemplo completo.