Caja combinada multicolumna

A continuación veremos un programa en Excel VBA que crea un Userform que contiene un cuadro combinado de varias columnas .

La forma de usuario que vamos a crear tiene el siguiente aspecto:

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. 2. Haga clic en Insertar, Formulario de usuario. 3. Si la Caja de herramientas no aparece automáticamente, haga clic en Ver, Caja de herramientas. La pantalla debe configurarse como se indica a continuación.

3. Añade la etiqueta, el cuadro combinado y los botones de comando. Una vez que esto se haya completado, el resultado debe ser consistente con la imagen del formulario de usuario mostrado anteriormente. Por ejemplo, cree un control de cuadro combinado haciendo clic en ComboBox desde la Caja de Herramientas. A continuación, puede arrastrar un cuadro combinado en el Formulario de usuario.

4. Puedes cambiar los nombres y los títulos de los controles. Los nombres se usan en el código VBA de Excel. Los subtítulos son los que aparecen en la pantalla. Es una buena práctica cambiar los nombres de los controles, pero no es necesario aquí porque sólo tenemos unos pocos controles en este ejemplo. Para cambiar la leyenda de la forma de usuario, la etiqueta y los botones de comando, 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 añada la siguiente línea de código:

Soldado Sub Sub CommandButton1_Click() Formulario de usuario1.Show End Sub

Ahora vamos a crear el Sub UserForm_Initialize. Al usar el método Show para el Userform, este sub se ejecutará automáticamente.

6. Abre el Editor de Visual Basic.

7. En el Explorador del Proyecto, haga clic con el botón derecho en UserForm1 y luego haga clic en View Code.

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

9. Añade las siguientes líneas de código:

Private Sub UserForm_Initialize() ComboBox1.ColumnCount = 2 Películas oscuras (1 a 5, 1 a 2) como cuerda Dim i As Integer, j As Integer Películas(1, 1) = «El Señor de los Anillos» Películas(2, 1) = «Velocidad» Películas(3, 1) = «Star Wars» Películas(4, 1) = «El Padrino» Películas(5, 1) = «Pulp Fiction» Películas(1, 2) = «Aventura» Películas(2, 2) = «Acción» Películas(3, 2) = «Ciencia Ficción» Películas(4, 2) = «Crimen» Películas(5, 2) = «Drama» ComboBox1.List = Películas End Sub

Explicación: La primera línea de código establece el número de columnas del cuadro combinado en 2. En lugar de establecer el número de columnas en tiempo de ejecución, también puede configurar este ajuste en tiempo de diseño. Para lograrlo, haz clic con el botón derecho del ratón en el control del cuadro combinado, haz clic en Propiedades y establece la propiedad ColumnCount en 2. A continuación, declaramos e inicializamos un arreglo bidimensional. La última línea de código asigna la matriz al cuadro combinado.

Hemos creado la primera parte de la forma de usuario. Aunque ya se ve bien, no pasará nada cuando hagamos clic en los botones de comando de la forma de usuario.

10. En el Explorador del Proyecto, haga doble clic en UserForm1.

11. Haga doble clic en el botón OK.

12. Añade las siguientes líneas de código:

Soldado Sub Sub CommandButton1_Click() Descárgueme MsgBox «You selected» & ComboBox1.Value Sobre el error Reanudar siguiente MsgBox «Te gusta» & ComboBox1.Columna(1) & «películas» End Sub

Nota: estas líneas de código cierran el formulario de usuario de Excel VBA y muestran el elemento y el género seleccionados. La sentencia «On Error Resume Next» ignora el error cuando el usuario rellena su propia película (en este caso no hay género disponible).

13. Haga doble clic en el botón Cancelar.

14. Añade la siguiente línea de código:

Soldado Sub Sub CommandButton2_Click() Descárgueme End Sub

Resultado cuando seleccionas Velocidad y haces clic en OK.

Deja un comentario