Con este pequeño código podemos llenar un combobox en un formulario, con datos de más de una columna.
ANTES: Nuestro libro de excel debe estar habilitada para ejecutar macros, es decir, con la extención .xlsm y nuestra pestaña de programador debe estar en modo diseño para que podamos escribir código y editar los objetos que vamos a utilizar.
PASO 1: En una columna escribimos nuestros datos. Por el bien de este ejemplo, pondremos encabezados, en este caso nombre y edad.
Datos en columnas. No es una tabla |
PASO 2: Creamos un botón de comando(commandbutton) en una de nuestras hojas, y tambien creamos un formulario. Hacemos doble clic sobre el botón de comando y escribimos lo siguiente:
Private Sub CommandButton1_Click()
UserForm1.Show
End SubCon esto mostraremos el formulario al hacer clic en el botón de comando.
PASO 3: En el formulario creamos creamos un cuadro combinado (combobox). Creamos también una etiqueta (label) para describír qué datos nos mostrará el cuadro combinado.
PASO 4: Hacemos doble clic en el formulario y escribimos lo siguiente:
Private Sub UserForm_Initialize()
With Sheets("Hoja1")ComboBox1.ColumnCount = 2ComboBox1.ColumnWidths = "60pt; 20pt"ComboBox1.List = .Range("B9:B" & .Cells(.Rows.Count, 2).End(xlUp).Row).Resize(, 2).ValueEnd With
End Sub
Esto hará que cuando el formulario se inicialice, nos posicionemos en la "Hoja1", especificando que nuestro cuadro combinado nos mostrará 2 columnas de datos y que cada una de estas columnas va a medir 60 y 20 puntos respectivamente. Luego llenamos este cuadro combinado con una lista que empieza desde B9 (donde tenemos nuestro primer nombre) y termina en la última fila con datos en esa columna, ampliando el rango a 2 columnas para que no solo tome una columna (nombre) sino, que tome 2, es decir nombre y edad.
Si queremos que nuestro cuadro combinado tenga 3 columnas, debemos cambiar ColumnCount a 3 y Resize a (0, 3). Tambien dependiendo del largo de nuestros datos debemos jugar con los tamaños de las columnas.
PASO 5: Ejecutar
LINK DE DESCARGA
No hay comentarios.:
Publicar un comentario