sábado, 12 de febrero de 2022

VBA EXCEL 2022: COMBOBOX MULTICOLUMNA CON DATOS CONTINUOS (O ADYACENTES)



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 Sub

Con 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 = 2
ComboBox1.ColumnWidths = "60pt; 20pt"
ComboBox1.List = .Range("B9:B" & .Cells(.Rows.Count, 2).End(xlUp).Row).Resize(, 2).Value
End 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