viernes, 17 de enero de 2014

Cargar registros de una hoja en ListView Excel VBA

Ejemplo en Excel VBA donde se cargara una lista de paises a un listview. Esto se realizara al cargar el formulario.



Para eso ncesitamos los siguientes controles.

- Userform
- Listview
- Button
Para insertar el listview  damos clic derechoa nuestra caja de herramientras y nos saldra Controles adicionales..., presionamos en esa opcion y nos aparecera un cuadro como este.

controles adicionales excel vba
En esta ventana seleccionamos la opción que dice: " Microsoft Listview Control 6.0 (SP6)
Y nos cargara la herramienta listview con la que trabajaremos

Nos vamos a codigo e insertamos el siguiene codigo

Private Sub UserForm_Initialize()
Me.ListView1.Width = 295
With ListView1
    .Gridlines = True ' Activa las lineas por cada fila
    .View = lvwReport 'En modo reporte
    .FullRowSelect = True ' permite seleccionar una fila completa
   
    .ColumnHeaders.Add Text:="CODIGO", Width:=40
    .ColumnHeaders.Add Text:="PAIS", Width:=240
End With
Call Actualizar
End Sub

Sub Actualizar()
Dim i As Integer
Dim UFila As Integer
Dim item As ListItem
With Sheets("Paises")
    UFila = .Range("A2", .Range("A2").End(xlDown)).Count

For i = 2 To UFila
    Set item = ListView1.ListItems.Add(Text:=.Cells(i, 1))
    item.SubItems(1) = .Cells(i, 2)
Next i
End With
End Sub


Private Sub CommandButton1_Click()
End
End Sub


Pueden encontrar el ejemplo  en la siguiente ruta:
Cargar registros a un listview con excel vba

5 comentarios:

  1. Muy buen ejemplo muchisimas gracias pero me puedes decir porque no llena la ultima fila

    ResponderEliminar
  2. Hola Daniel:
    Si los datos de tu hoja de excel no tienen un espacio en blanco, te deberia cargar todos los datos.
    Saludos

    ResponderEliminar
  3. Hola Daniel... Gracias por tu post... Me permitió cargar registros de manera sencilla y cómoda. Acá dejo mi adaptación por si le sirve a otros.

    Sub Llena_ListBox_AI()
    Dim i As Integer
    Dim UFila As Integer
    Dim item As ListItem

    With UserForm_Nueva_NC.ListView_AI
    .ColumnHeaders.Add Text:="Actividad", Width:=250
    .ColumnHeaders.Add Text:="Responsable", Width:=150
    .ColumnHeaders.Add Text:="Fecha Acción"
    End With


    With Sheets("PG 453.2 r01")
    For i = 23 To Hoja5.Range("AB22") - 1
    Set item = UserForm_Nueva_NC.ListView_AI.ListItems.Add(Text:=.Cells(i, 2))
    item.SubItems(1) = .Cells(i, 13)
    item.SubItems(2) = .Cells(i, 21)

    Next i
    End With

    End Sub

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. hola me aparece un error de ClassFactory cuando inserto el listview al userform, alguno de uds conoce ese error?

    ResponderEliminar

Cargar multiples archivos txt en SSIS

 Fuentes Archivos planos Descargar AQUÍ los archivos Consulta SQL de creacion de tabla Despacho en SQL Server CREATE TABLE [dbo].[Despacho]...