Actualizar listview al ingresar dato

Estimado expertos necesito nuevamente de sus ayuda. Tengo el siguiente formulario, lo que necesito es que al momento de presionar aplicar gastos se refleje en el listview automáticamente sin necesidad de salir del form. Tengo estos códigos:

Private Sub UserForm_Initialize()
Me.ListView1.Width = 405
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:="Documento", Width:=60
.ColumnHeaders.Add Text:="No.Doc", Width:=50
.ColumnHeaders.Add Text:="Descripcion del gasto", Width:=225
.ColumnHeaders.Add Text:="Valor Q.", Width:=60
End With
Call Actualizar

ComboBox1.AddItem "Factura"
ComboBox1.AddItem "Envio"
ComboBox1.AddItem "Recibo"
End Sub

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

For i = 11 To UFila
Set item = ListView1.ListItems.Add(Text:=.Cells(i, 1))
item.SubItems(1) = .Cells(i, 2)
item.SubItems(2)= .Cells(i, 3)

item.SubItems(3) = .Cells(i, 4)

Next i
End With
End Sub

Respuesta
1

La verdad te escribo "de memoria" sin verificar la exactitud, ¿pero probaste agregar a las instrucciones de tu botón "aplicar gastos" la función clear y luego a "cargar" los datos a la misma lsitview? Algo así como:

ListView1. Clear

Me.ListView1.Width = 405
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:="Documento", Width:=60
.ColumnHeaders.Add Text:="No.Doc", Width:=50
.ColumnHeaders.Add Text:="Descripcion del gasto", Width:=225
.ColumnHeaders.Add Text:="Valor Q.", Width:=60
End With

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas