VBA Cuadro Combinado

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on junio 30, 2022

Este tutorial demostrará cómo trabajar con ComboBoxes en VBA. ComboBoxes permiten a los usuarios seleccionar una opción de una lista de menú desplegable. Los ComboBoxes pueden ser creados en Formularios de VBA o con una hoja de cálculo de Excel. En este tutorial, aprenderá a crear y manipular ComboBoxes en VBA y en hojas de cálculo de Excel.

Si desea aprender a crear un Listbox, haga clic aquí: VBA Listbox

Si desea aprender a crear un Checkbox, haga clic aquí: VBA Checkbox

Crear un Cuadro Combinado en una hoja de cálculo de Excel

Para insertar un Cuadro Combinado en la Hoja de Trabajo, debe ir a la sección Ficha de desarrollador, hacer clic en Insertar y en Controles ActiveX elegir Cuadro combinado:

Insertar ActiveX Hoja Excel

 

Imagen 1. Insertar un Cuadro Combinado en la hoja de cálculo

Cuando seleccione el Cuadro Combinado que ha insertado, puede hacer clic en Propiedades en la pestaña Desarrollador:

Propiedades Ccuadro Combinado

 

Imagen 2. Cambiar las propiedades del ComboBox

Aquí puedes establecer diferentes propiedades del Cuadro Combinado. Para empezar, cambiamos el atributo Name a cmbComboBox. Ahora, podemos utilizar el Cuadro Combinado con este nombre en el código VBA.

Rellenar un Cuadro Combinado en código VBA

En primer lugar, necesitamos rellenar el Cuadro Combinado con valores. En la mayoría de los casos, un Cuadro Combinado necesita ser rellenado cuando se abre el Libro de Trabajo. Debido a esto, necesitamos poner un código para rellenar el Cuadro Combinado en el objeto Libro de Trabajo, procedimiento Open. Este procedimiento se ejecuta cada vez que un usuario abre el Libro de Trabajo. Aquí está el código:

With Hoja1.cmbComboBox
 
    .AddItem "John"
    .AddItem "Michael"
    .AddItem "Jennifer"
    .AddItem "Lilly"
    .AddItem "Robert"
 
End With

Cuando haga clic en el menú desplegable, obtendrá 5 nombres para elegir (John, Michael, Jennifer, Lilly y Robert):

Rellenar Cuadro Combinado

Imagen 3. Rellenar el Cuadro Combinado en VBA

Rellenar un Cuadro Combinado desde un rango de celdas

Otra forma posible de rellenar un Cuadro Combinado es dejar que el usuario lo haga. Un Cuadro Combinado puede estar vinculado al rango de celdas. En este enfoque, cada vez que un usuario introduce un nuevo valor en el rango de celdas, el Cuadro Combinado se actualizará con ese valor. Si quieres activar esto, tienes que ir a las Propiedades del Cuadro Combinado y establecer el atributo ListFillRange al rango de celdas (en nuestro caso E2:E10):

Rellenar Cuadro Combinado desde Rango

 

 

Imagen 4. Rellenar el Cuadro Combinado desde el rango de celdas

Vinculamos nuestro Cuadro Combinado con el rango E2:E10, donde ponemos los nombres que queremos (Robert, Julia, George, Matthew). Como resultado, el Cuadro Combinado está ahora lleno con estos nombres: vba populated combobox

Imagen 5. Rellenar el Cuadro Combinado desde el rango de celdas

Obtener un elemento seleccionado de un ComboBox en VBA

El propósito de un Cuadro Combinado es obtener la elección de un usuario. Para obtener la elección del usuario, necesitas usar este código:

Sub obtenerItem()
Dim itemSeleccionado As Variant
 
itemSeleccionado = Hoja1.cmbComboBox.Value
End Sub

La selección del usuario está en el atributo Value del objeto Hoja1 .cmbComboBox. Este valor se asigna a la variable itemSeleccionado:

Obtener Elemento Seleccionado del Combo

 

Imagen 6. Obtener un valor seleccionado del ComboBox en VBA

Seleccionamos a Julia en el Cuadro Combinado y ejecutamos el procedimiento. Como puedes ver en la Imagen 6, el valor del itemSeleccionado es Julia, que es el valor que hemos seleccionado. Ahora puedes procesar esta variable más adelante en el código.

Borrar un Cuadro Combinado

Si quieres borrar un Cuadro Combinado en VBA, necesitas utilizar el método Clear del objeto Hoja1.cmbComboBox. Esto borrará todos los elementos del Cuadro Combinado. Este es el código:

Hoja1.cmbComboBox.Clear

Cuando ejecutamos el código, obtenemos el Cuadro Combinado vacío:

Cuadro Combinado Vacio

 

Imagen 7. Borrar el ComboBox

Usar un Cuadro Combinado en un Formulario

Como ya hemos mencionado, los Cuadros Combinados se utilizan más a menudo en los formularios. Para explicar cómo se puede hacer, primero insertaremos un formulario. En el editor VBA, haga clic con el botón derecho del ratón en el nombre del módulo, haga clic en Insertar y seleccione UserForm:

Insertar Un Formulario

 

Imagen 8. Insertar un formulario de usuario

Para mostrar los controles de inserción, es necesario activar la caja de herramientas. Para ello, haga clic en el icono de la caja de herramientas en la barra de herramientas. Después de eso, obtendrá las ventanas con todos los controles disponibles. Puedes hacer clic en Cuadro Combinado para crearlo en el formulario

Cuadro Herramientas Cuadro Combinado

.

Imagen 9. Insertar un Cuadro Combinado en el formulario

Llamaremos al Cuadro Combinado cmbComboBox. Para rellenarlo con valores, tenemos que poner el siguiente código en el método Initialize del objeto UserForm:

Private Sub UserForm_Initialize()
    With UserForm1.cmbComboBox
 
        .AddItem "Robert"
        .AddItem "Julia"
        .AddItem "George"
        .AddItem "Matthew"
        .AddItem "Carlos"
 
    End With
End Sub

Este código se activa cada vez que un usuario ejecuta el formulario y rellena el Cuadro Combinado con estos 5 nombres:

Cuadro Combinado Desde Formulario Initialize

 

Imagen 10. El Cuadro Combinado con valores en el Formulario

Si desea obtener el valor seleccionado del Cuadro Combinado, necesita utilizar la misma lógica para el Cuadro Combinado en una Hoja de Trabajo, que se explica anteriormente en el artículo.

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples