300 Ejemplos

Varias selecciones de cuadro de lista

Multiple List Box Selections

los Propiedad MultiSelect en Excel VBA permite a un usuario seleccionar varios elementos en un cuadro de lista. El formulario de usuario que vamos a crear tiene el siguiente aspecto:

Varias selecciones de cuadro de lista en Excel VBA



Para crear este formulario de usuario, ejecute 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 como se muestra a continuación.

cómo hacer una referencia de celda absoluta en Excel en Mac

Configuración de pantalla de formulario de usuario en Excel VBA

3. Agregue los cuadros de lista (primero a la izquierda, el segundo a la derecha), botones de comando, casillas de verificación (primero a la izquierda, segundo a la derecha), marcos y botones de opción (primero en la parte superior, el segundo debajo el primero, y así sucesivamente). Una vez que se haya completado, el resultado debe ser coherente con la imagen del formulario de usuario que se mostró anteriormente. 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 en el formulario de usuario. Cuando llegue al marco 'Seleccionar tipo', recuerde dibujar este marco primero antes de colocar los tres botones de opción en él.

4. Puede cambiar los nombres y los títulos de los controles. Los nombres se utilizan en el código de Excel VBA. Los subtítulos son los que aparecen en su pantalla. Es una buena práctica cambiar los nombres de los controles, pero no es necesario aquí porque solo tenemos unos pocos controles en este ejemplo. Para cambiar el título del formulario de usuario, los botones de comando, las casillas de verificación, el marco y los botones de opción, haga clic en Ver, Ventana de 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 SubCommandButton1_Click ()

UserForm1.Show

Fin Sub

Ahora vamos a crear el Sub UserForm_Initialize. Cuando utilice el método Show para el formulario de usuario, este sub se ejecutará automáticamente.

6. Abra el Editor de Visual Basic .

7. En el Explorador de proyectos, haga clic derecho en UserForm1 y luego haga clic en Ver código.

8. Primero, declare la variable i de tipo Integer. Declare la variable en la sección Declaraciones generales (en la parte superior del código). De esta manera, solo tiene que declarar la variable una vez y puede usarlas en múltiples subs.

NingunoIComo Entero

9. Elija Userform de 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 SubUserForm_Initialize ()

ConListBox1
.AddItem 'Ventas'
.AddItem 'Producción'
.AddItem 'Logística'
.AddItem 'Recursos humanos'
Fin Con

OptionButton3.Value =Cierto

Fin Sub

Explicación: se llenará 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 ya se ve bien, no pasará nada cuando hagamos clic en los botones de comando o en los otros controles.

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

Mostrar pestaña de desarrollador en Excel 2013

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

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

Privado SubCommandButton1_Click ()

Parai = 0AListBox1.ListCount - 1
SiListBox1.Selected (i) =Cierto EntoncesListBox2.AddItem ListBox1.List (i)
PróximoI

Fin Sub

Explicación: Excel VBA recorre el primer cuadro de lista (número de índice de lista cero (0) para el primer elemento de la 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 SubCommandButton2_Click ()

NingunoencimeraComoEntero
contador = 0

Parai = 0AListBox2.ListCount - 1
SiListBox2.Selected (i - contador)Entonces
ListBox2.RemoveItem (i - contador)
contador = contador + 1
Fin Si
PróximoI

CheckBox2.Value =Falso

Fin Sub

Explicación: Excel VBA recorre el segundo cuadro de lista y, si se selecciona, elimina el elemento. La variable de contador mantiene un registro del 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 SubOptionButton1_Click ()

ListBox1.MultiSelect = 0
ListBox2.MultiSelect = 0

Fin Sub

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

creando tablas dinámicas en Excel 2016

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

Privado SubOptionButton2_Click ()

ListBox1.MultiSelect = 1
ListBox2.MultiSelect = 1

Fin Sub

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

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

Privado SubOptionButton3_Click ()

ListBox1.MultiSelect = 2
ListBox2.MultiSelect = 2

Fin Sub

Explicación: la configuración 'Seleccionar tipo' se puede elegir haciendo clic en los botones de opción. La imagen del formulario de usuario que se mostró anteriormente ofrece una descripción de cada configuración. En lugar de configurar esta opción en tiempo de ejecución, también puede configurar esta opción en tiempo de diseño. Para lograr esto, haga clic con el botón derecho del mouse en un control de cuadro de lista y luego 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 SubCheckBox1_Click ()

SiCheckBox1.Value =Cierto Entonces
Parai = 0AListBox1.ListCount - 1
ListBox1.Selected (i) = Verdadero
PróximoI
Fin Si

SiCheckBox1.Value =Falso Entonces
Parai = 0AListBox1.ListCount - 1
ListBox1.Selected (i) = Falso
PróximoI
Fin Si

Fin Sub

Explicación: al marcar la primera casilla de verificación, todos los elementos de la primera casilla de lista se pueden seleccionar / deseleccionar.

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

5/11 Completado! Obtenga más información sobre los formularios de usuario>
Ir al capítulo siguiente: Abarcar



^