VBA Cuadro Combinado
In this Article
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:
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:
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):
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):
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:
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:
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:
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:
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
.
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:
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!Learn More!