Excel tiene un control ActiveX conocido como Cuadro combinado el cual también es llamado comúnmente por su nombre en inglés: Combo Box. Este control nos permite crear listas desplegables en nuestros formularios.
Para insertar un Cuadro combinado debemos ir a la ficha Programador y dentro del botón Insertar pulsar el comando Cuadro combinado (control ActiveX):
Después de dibujar el Cuadro combinado tendrás un resultado como el siguiente:
Agregar elementos al cuadro combinado
Si quiero que el Cuadro combinado muestre los valores del rango A1:A5, puedo utilizar la propiedad ListFillRange donde puedo indicar este rango:
Como resultado obtendré los valores de las celdas como elementos del Cuadro combinado:
Diferencia con el cuadro de lista
Una diferencia importante entre el Cuadro combinado y el cuadro de lista es que el primero permite que el usuario capture una opción diferente a las mostradas en la lista. En el ejemplo anterior no aparecía el día domingo como parte de los elementos, sin embargo puedo capturar el día domingo dentro del cuadro de lista.
Si quieres evitar que el usuario introduzca sus propios valores existen dos opciones:
- Utilizar el control ActiveX Cuadro de lista en lugar del Cuadro combinado
- Utilizar el Cuadro combinado pero validar la opción seleccionada con código VBA de manera que nos aseguremos que el usuario ha seleccionado una opción de la lista. Un ejemplo de código de validación es el siguiente:
Asociar una celda al cuadro combinado
Al igual que con otros controles ActiveX, podemos asocias una celda al cuadro combinado de manera que muestre el elemento de la lista que haya sido seleccionado. Esta configuración la hacemos en la propiedad LinkedCell:
Cuando selecciones un elemento del cuadro combinado se reflejará dicha selección en la celda indicada en la propiedad LinkedCell: