Diseños de Cuadros Combinados en VBA de Excel

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:


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

No hay comentarios:

Publicar un comentario