Cuadro de lista de VBA

En VBA, puede crear un Cuadro de lista donde un usuario puede elegir una de las opciones enumeradas. El cuadro de lista se usa a menudo en formularios de usuario, pero también se puede usar en una hoja de trabajo. En este tutorial, aprenderá a crear, completar y eliminar un Listbox. También verá cómo obtener una opción de usuario en VBA y usarla en el código.

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

Si desea aprender a crear una casilla de verificación, haga clic aquí: casilla de verificación de VBA

Crear un cuadro de lista

Para insertar un cuadro de lista en la hoja de trabajo, debe ir a la Pestaña de desarrollador, haga clic en Insertar y en Controles ActiveX elija Cuadro de lista:

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

Cuando seleccione el cuadro de lista que insertó, puede hacer clic en Propiedades bajo la Pestaña de desarrollador:

Imagen 2. Cambiar las propiedades del cuadro de lista

Aquí puede establecer diferentes propiedades del Listbox. Al principio, cambiamos el atributo Nombre para lstListBox. Ahora, podemos usar el Listbox con este nombre en el código VBA.

Rellenar un cuadro de lista en código VBA

Primero, necesitamos llenar el Listbox con valores. En la mayoría de los casos, es necesario completar un cuadro de lista cuando se abre el libro de trabajo. Debido a esto, necesitamos poner un código para completar el Listbox 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.lstListBox.AddItem "John".Añadir elemento "Michael".AddItem "Jennifer".AddItem "Lilly".AddItem "Robert"Terminar con

Como puede ver en la Imagen 3, llenamos nuestro Listbox con 5 nombres (John, Michael, Jennifer, Lilly y Robert):

Imagen 3. Complete el cuadro de lista en VBA

Rellenar un cuadro de lista a partir de un rango de celdas

Otra forma posible de rellenar un Listbox es dejar que lo haga un usuario. Un cuadro de lista se puede vincular al rango de celdas. Por lo tanto, cada vez que un usuario ingresa un nuevo valor en el rango de celdas, el cuadro de lista se actualizará con ese valor.

Si desea habilitar esto, debe ir a la Propiedades del ListBox y establezca el atributo ListFillRange:

Imagen 4. Complete el cuadro de lista a partir del rango de celdas

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

Obtener un elemento seleccionado de un cuadro de lista en VBA

El propósito de un Listbox es que el usuario elija. Para recuperar un valor seleccionado por un usuario, debe usar este código:

123 Dim strSelectedItem como variantestrSelectedItem = Sheet1.lstListBox.Value

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

Imagen 5. Obtenga un valor seleccionado del Listbox en VBA

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

Borrar un cuadro de lista

Para borrar un Listbox en VBA, debe usar Claro método de Sheet1.lstListBox objeto. Eliminará todos los elementos del cuadro de lista. Aquí está el código:

1 Sheet1.lstListBox.Clear

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

Imagen 6. Limpiar el cuadro de lista

Usar un cuadro de lista en un formulario de usuario

Como mencionamos, Listbox 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 7. 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 Cuadro de lista para crearlo en el formulario de usuario.

Imagen 8. Inserte un cuadro de lista 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.lstListBox.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 llena el cuadro de lista con estos 5 nombres:

Imagen 9. El cuadro de lista 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