ComboBox de VBA

ComboBoxes Permitir a los usuarios seleccionar una opción de una lista de menú desplegable. Los ComboBoxes se pueden crear en VBA UserForms 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 una casilla de verificación, haga clic aquí: casilla de verificación de VBA

Crear un ComboBox en la hoja de cálculo de Excel

Para insertar un ComboBox en la hoja de trabajo, debe ir a la Pestaña de desarrollador, haga clic en Insertar y en Controles ActiveX elija Caja combo:

Imagen 1. Inserte un cuadro combinado en la hoja de trabajo

Cuando selecciona el ComboBox que insertó, puede hacer clic en Propiedades bajo la Pestaña de desarrollador:

Imagen 2. Cambiar las propiedades de ComboBox

Aquí puede establecer diferentes propiedades del ComboBox. Para empezar, cambiamos el atributo Nombre para cmbComboBox. Ahora, podemos usar el ComboBox con este nombre en código VBA.

Rellenar un ComboBox en código VBA

Primero, necesitamos llenar el ComboBox con valores. En la mayoría de los casos, es necesario completar un ComboBox cuando se abre el Libro de trabajo. Debido a esto, necesitamos poner un código para completar el ComboBox en el objeto Libro de trabajo, procedimiento Abierto. Este procedimiento se ejecuta cada vez que un usuario abre el Libro de trabajo. Aquí está el código:

123456789 Con Sheet1.cmbComboBox.AddItem "John".Añadir elemento "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Terminar con

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

Imagen 3. Complete el ComboBox en VBA

Rellenar un ComboBox a partir de un rango de celdas

Otra forma posible de completar un ComboBox es dejar que un usuario lo haga. Un ComboBox se puede vincular al rango de celdas. En este enfoque, cada vez que un usuario ingresa un nuevo valor en el rango de celdas, el ComboBox se actualizará con ese valor.

Si desea habilitar esto, debe ir a la Propiedades del ComboBox y establezca el atributo ListFillRange al rango de celdas (en nuestro caso E2: E5):

Imagen 4. Complete el ComboBox desde el rango de celdas

Vinculamos nuestro ComboBox con la gama E2: E5, donde ponemos los nombres que queremos (Nathan, Harry, George, Roberta). Como resultado, el ComboBox ahora se llena con estos nombres:

Imagen 5. ComboBox poblado del rango de celdas

Obtener un elemento seleccionado de un ComboBox en VBA

El propósito de un ComboBox es que el usuario elija. Para recuperar la elección de un usuario, debe utilizar este código:

123 Dim strSelectedItem como variantestrSelectedItem = Sheet1.cmbComboBox.Value

La selección de usuarios está en el atributo Valor de Sheet1.cmbComboBox objeto. Este valor se asigna a la variable strSelectedItem:

Imagen 6. Obtenga un valor seleccionado del ComboBox en VBA

Seleccionamos Julia en el ComboBox y ejecutó el procedimiento. Como puede ver en la Imagen 5, el valor de la strSelectedItem es Julia, que es el valor que seleccionamos. Ahora puede procesar esta variable más en el código.

Borrar un ComboBox

Si desea borrar un ComboBox en VBA, debe usar Claro método de Sheet1.lstComboBox objeto. Eliminará todos los elementos del ComboBox. Aquí está el código:

1 Sheet1.cmbComboBox.Clear

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

Imagen 7. Limpiar el ComboBox

Usar un ComboBox en un formulario de usuario

Como mencionamos, Combobox se usa con mayor frecuencia en formularios de usuario. Para explicar cómo puede hacerlo, primero insertaremos un formulario de usuario. En el editor de VBA, haga clic con el botón derecho en el nombre del módulo, haga clic en Insertar y elige Formulario de usuario:

Imagen 8. Insertar un formulario de usuario

Para mostrar los controles de inserción, debe habilitar el Caja de herramientas. Para hacer esto, haga clic en elCaja de herramientas en la barra de herramientas. Después de eso, obtendrá las ventanas con todos los controles disponibles. Puede hacer clic en Caja combo para crearlo en el formulario de usuario.

Imagen 9. Inserte un ComboBox en el formulario de usuario

Daremos nombre al ComboBox cmbComboBox. Para completarlo con valores, necesitamos poner el siguiente código en el método Inicializar del objeto Formulario de usuario:

12345678910111213 Sub UserForm_Initialize privado ()Con UserForm1.cmbComboBox.AddItem "John".Añadir elemento "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Terminar conEnd Sub

Este código se activa cada vez que un usuario ejecuta el formulario de usuario y completa el cuadro combinado con estos 5 nombres:

Imagen 10. El ComboBox con valores en el formulario de usuario

Si desea obtener el valor seleccionado del ComboBox, debe usar la misma lógica para el ComboBox en una hoja de trabajo, que se explica anteriormente en el artículo.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave