Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
ICONO 150x150, Llenar Listbox con VBA

Llenar Listbox con VBA

| 10 comentarios

¿Qué es un Listbox?

Un cuadro de lista es un elemento de control gráfico que le permite al usuario seleccionar uno o más elementos de una lista contenida dentro de un cuadro de texto estático de varias líneas.

¿Cómo hacer un Listbox en un Userform?

En el siguiente ejemplo mostraremos como pasar una lista de una hoja de excel hacia un Listbox en un formulario de Vba.

1)Tener la lista que se desea  en una hoja de excel (con la estructura como se desea tener en la listbox)
2)Abrir en el excel el visual Basic (alt+f11)
3)Damos clic en insertar y seleccionamos userform
4)En el cuadro de herramientas seleccionamos cuadro lista y lo colocamos encima de la ventana del Userform(Lo ajustamos a un tamaño razonable que muestre los datos de nuestra lista en excel)

Llenar Listbox 2, Llenar Listbox con VBA

5)Damos doble click en el formulario(userform) para abrir la ventana de codificación.

Llenar Listbox 3, Llenar Listbox con VBA
6)Cambiamos el evento para esto le damos click al evento Initialize(para que cuando inicie el formulario se cargue los datos de la hoja1)

Llenar Listbox 4, Llenar Listbox con VBA

7)Empezamos la codificación:

Private Sub Userform_Initialize()

Me.Listbox1.Rowsource= "Hoja1!A2:C11" '(esto es para poner elementos de una hoja hacia nuestro listbox ("Me." hace referencia a nuestra hoja1)en este caso la hoja tiene como nombre Hoja1(Se podría omitir el uso del "Me.")

Me.Listbox1.ColumnCount=3 '(con esto ponemos el número de columnas que queremos que se muestren en el listbox)

Me.Listbox1.ColumnWidths=" 25;100;40" '(Con esto modificamos el ancho de las columnas a medida que nuestro Listbox se vea de una manera ordenada,el 1er valor hace referencia la primera columna ,el 2do a la segunda columna y el 3ro a la tercera columna)

Me.Listbox1.ColumnHeads=True '(esto hace que la listbox tome los titulos de las cabeceras de la lista en excel y los muestre)

 

End Sub

8)Damos F5 para correr la programación y ver nuestro listbox

Llenar Listbox 5, Llenar Listbox con VBA

Llenar Listbox con VBA

10 comentarios

  1. y si queremos que las opciones desplegadas en el listbox, sea el contenido de una tabla creada manualmente. Por ejemplo Dim a (5) as string. a(0)="hola", a(1)="adios"...

  2. Muy buena explicación, fácil de entender y de realizar. No soy un experto programando, aún estoy iniciando; tuve este problema de cómo llenar un ListBox, había buscado en muchas páginas y todas tenían cosas que no necesitabas y te explicaban cosas que no necesitas saber aún.
    Pero encontré tu publicación y es exactamente lo que necesitaba, sin más ni menos.

    Excelente aporte

  3. hola, muchas gracias, me sirvio mucho, y ahora me surge una duda, si el valor introducido no existe dentro de la tabla que seleccionamos, como advertimos que es un valor no asignado?

  4. BUENAS NOCHES ,TENGO LA SIGUIENTE PREGUNTA,¿SE PUEDE MOSTRAR EL VALOR DE UNA VARIABLE DENTRO DE UN LISTBOX?

  5. una serie de TextBox1...2...3...n, con una serie de valores
    si quiero pasar los datos a variables cambiando los nombres de campo en un bucle for por ejemplo. ¿Cómo se hace?...acompaño planteamiento.

    For a=1 to 100
    Range(1, a)=Textbox_a
    next a

  6. No me funciona "Could not set the RowSource, Invalid property value"

  7. tengo un listbox donde cargo mis datos que estan en una TABLA, cuando digo tabbla hablo de una con nombre y formato tabla. el tema es que los cargo bien, pero deseo poder modificar los datos. yo lo he hecho pero nunca cuando la tabla tiene nombre y forma.

  8. Hola.
    Como se puede llenar un Listbox, que esta por ejemplo en la Hoja 2 (sin utilizar formulario), pero sin utilizar la macro genérica, es decir, lo quiero hacer desde el apartado de programación de la misma Hoja 2. Por ejemplo, yo entro en la Hoja 2, al activarse la hoja, llena el listbox con unos datos que están en la Hoja 1, espero haber podido explicarlo bien, y que se entienda.
    No se como llamar una macro que esta integrada en una hoja, el programa solo me deja hacer llamadas a macros que se encuentran en los modulos. Gracias

  9. Tengo una tabla de donde levanto los datos para cargarlos en el listbox (Formato tabla con encabezado) y la propiedad columnheads =true.
    Pero cuando carga los datos no me aparecen los encabezados. Alguien sabe cual puede ser la razon?.Muchas gracias

  10. Buen día
    Tengo un formulario que llena ciertas tablas. Dentro del formulario tengo un listbox que carga la información de la tabla que esta enlazada, lo que quiero es que al ingresar un nuevo dato a esa tabla dentro del mismo formulario donde está el listbox , este se actualice automáticamente , unicamente con los datos que corresponde al consecutivo de este formulario

Deja una respuesta

Los campos requeridos estan marcados con *.