Varias selecciones de cuadros de lista en Excel VBA

Buenas tardes, mi nombre es Miguel y esta vez os traigo un nuevo post.

O Propiedad MultiSelect dentro Excel VBA permite al usuario seleccionar varios elementos en un cuadro de lista. El formulario de usuario que vamos a crear se ve así:

Varias selecciones de cuadros de lista en Excel VBA

Para crear este formulario de usuario, realice los siguientes pasos.

1. Abra el Editor de Visual Basic. Si el Explorador de proyectos no está visible, haga clic en Ver, Explorador de proyectos.

2. Haga clic en Insertar, formulario de usuario. Si la caja de herramientas no aparece automáticamente, haga clic en Ver, caja de herramientas. Su pantalla debe configurarse de la siguiente manera.

Visualización de la pantalla del formulario de usuario en Excel VBA

3. Agregue los cuadros de lista (primero a la izquierda, segundo a la derecha), botones de comando, casillas de verificación (primero a la izquierda, segundo a la derecha), casillas de verificación y botones de opción (primero en la parte superior, segundo debajo del primero, etc.). Una vez completado, el resultado debe ser coherente con la imagen del formulario de usuario que se muestra arriba. Por ejemplo, cree un control de cuadro de lista haciendo clic en ListBox en el cuadro de herramientas. A continuación, puede arrastrar un cuadro de lista al formulario de usuario. Cuando llegue al cuadro "Seleccionar tipo", recuerde dibujarlo primero antes de colocar los tres botones de radio en él.

4. Puede cambiar los nombres y subtítulos de los controles. Los nombres se utilizan en el código Excel VBA. Los subtítulos son los que aparecen en pantalla. Es una buena práctica cambiar el nombre de los controles, pero no es necesario aquí porque solo tenemos algunos controles en este ejemplo. Para cambiar el título del formulario de usuario, botones de comando, casillas de verificación, casillas y botones de radio, haga clic en Ver, ventana Propiedades y haga clic en cada control.

5. Para mostrar el formulario de usuario, coloque un botón de comando en su hoja de trabajo y agregue la siguiente línea de código:

Privado Sub CommandButton1_Click ()

UserForm1.Show

Aleta Sub

Ahora creemos el Sub UserForm_Initialize. Cuando utilice el método Show para el formulario de usuario, se ejecutará automáticamente.

6. Abra el Editor de Visual Basic.

7. En el Explorador de proyectos, haga clic con el botón secundario en UserForm1 y, a continuación, haga clic en Ver código.

8. Primero, declare la variable i del tipo entero. Declare la variable en la sección Declaraciones generales (en la parte superior del código). De esta forma solo tienes que declarar la variable una vez y puedes usarlas en varios subs.

Oscuro me Cómo Entero

9. Elija Formulario de usuario en la lista desplegable de la izquierda. Elija Inicializar en la lista desplegable de la derecha.

10. Agregue las siguientes líneas de código:

Privado Sub UserForm_Initialize ()

Con ListBox1
.AddItem "Ventas"
.AddItem "Producción"
.AddItem "Logística"
.AddItem "Recursos humanos"
Aleta Con

OptionButton3.Value = Cierto

Aleta Sub

Explicación: Se completará el primer cuadro de lista y el tercer botón de opción se establecerá como predeterminado.

Ahora hemos creado la primera parte del formulario de usuario. Aunque parece que ya está ordenado, todavía no pasará nada cuando hagamos clic en los botones de comando u otros controles.

11. En el Explorador de proyectos, haga doble clic en UserForm1.

12. Haga doble clic en el botón Agregar.

13. Agregue las siguientes líneas de código:

Privado Sub CommandButton1_Click ()

Para i = 0 Para ListBox1.ListCount - 1
ListBox 1. Seleccionado (i) = Cierto Entonces ListBox2.AddItem ListBox1.List (s)
Entonces me

Aleta Sub

Explicación: Excel VBA atraviesa el primer cuadro de lista (número de índice de lista cero (0) para el primer elemento de lista) y, si se selecciona, agrega el elemento al segundo cuadro de lista.

14. Haga doble clic en el botón Eliminar.

15. Agregue las siguientes líneas de código:

Privado Sub CommandButton2_Click ()

Oscuro encimera Cómo Entero
contador = 0

Para i = 0 Para ListBox2.ListCount - 1
ListBox2.Selected (i - contador) Entonces

ListBox2.RemoveItem (i - contador)
contador = contador + 1
Aleta
Entonces me

CheckBox2.Value = Falso

Aleta Sub

Explicación: Excel VBA pasa por el segundo cuadro de lista y, si se selecciona, elimina el elemento. La variable de contador rastrea el número de elementos eliminados.

16. Haga doble clic en el primer botón de opción.

17. Agregue las siguientes líneas de código:

Privado Sub OptionButton1_Click ()

ListBox1.MultiSelect = 0
ListBox2.MultiSelect = 0

Aleta Sub

18. Haga doble clic en el segundo botón de opción.

19. Agregue las siguientes líneas de código:

Privado Sub OptionButton2_Click ()

ListBox1.MultiSelect = 1
ListBox2.MultiSelect = 1

Aleta Sub

20. Haga doble clic en el tercer botón de opción.

21. Agregue las siguientes líneas de código:

Privado Sub OptionButton3_Click ()

ListBox1.MultiSelect = 2
ListBox2.MultiSelect = 2

Aleta Sub

Explicación: La opción "Seleccionar tipo" se puede elegir haciendo clic en los botones de opción. La imagen del formulario de usuario que se muestra arriba proporciona una descripción de cada configuración. En lugar de configurar esta configuración en tiempo de ejecución, también puede configurar esta configuración en tiempo de diseño. Para hacer esto, haga clic con el botón derecho en un control de cuadro de lista y haga clic en Propiedades. Establezca la propiedad MultiSelect en 0 - fmMultiSelectSingle, 1 - fmMultiSelectMulti o 2 - fmMultiSelectExtented.

22. Haga doble clic en la primera casilla de verificación.

23. Agregue las siguientes líneas de código:

Privado Sub CheckBox1_Click ()

CheckBox1.Value = Cierto Entonces

Para i = 0 Para ListBox1.ListCount - 1
ListBox1.Selected (i) = Verdadero
Entonces me
Aleta

CheckBox1.Value = Falso Entonces

Para i = 0 Para ListBox1.ListCount - 1
ListBox1.Selected (i) = Falso
Entonces me
Aleta

Aleta Sub

Explicación: Al marcar la primera casilla de verificación, puede seleccionar / anular la selección de todos los elementos en la primera casilla de lista.

24. Haga doble clic en la segunda casilla de verificación para agregar las mismas líneas de código. Reemplace CheckBox1 solo con CheckBox2 y ListBox1 con ListBox2.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página utiliza Cookies. Más info