Como filtrar en un listbox solo ciertas filas según criterio

Para Dante.

Buenas tardes experto. Anteriormente me había ayudado con este buscador pero ahora quiero actualizarlo. Este buscador al momento de darle al boton buscar por fecha me muestra lo siguiente en el listbox y en los textbox, lo que necesito es que me pueda sumar algo así como sumar. Si. Conjunto que me pueda sumar según la operación de la octava columna ( enganche, contado, abono/pago) y los resultado los muestre como se ven en los siguientes textbox que están de rojo porque actualmente solo aparece con los que esta en números negro. Le agrego la macro y imagen la que tengo actualmente para explicarme mejor. Espero me pueda ayudar.

ListBox1. Clear
    ListBox1.ColumnCount = 10
ListBox1.ColumnWidths = "30;100;135;38;38;38;38;55;115;40;"
    For Each celda In Hoja4.Range("I2:I" & Hoja4.Range("I" & Rows.Count).End(xlUp).Row)
        If celda >= DTPicker1 And celda <= DTPicker2 Then
            ListBox1. AddItem
            ListBox1. List(ListBox1.ListCount - 1, 0) = Hoja4. Cells(celda.Row, "A") 'documento
            ListBox1. List(ListBox1.ListCount - 1, 1) = Hoja4. Cells(celda.Row, "B") 'nombre
            ListBox1. List(ListBox1.ListCount - 1, 2) = Hoja4. Cells(celda.Row, "C") 'articulo
            ListBox1. List(ListBox1.ListCount - 1, 3) = Hoja4. Cells(celda.Row, "D") 'saldos ant
            ListBox1. List(ListBox1.ListCount - 1, 4) = Hoja4. Cells(celda.Row, "E") 'abono
            ListBox1. List(ListBox1.ListCount - 1, 5) = Hoja4. Cells(celda.Row, "F") 'saldo a
            ListBox1. List(ListBox1.ListCount - 1, 6) = Hoja4. Cells(celda.Row, "G") 'mora
            ListBox1. List(ListBox1.ListCount - 1, 7) = Hoja4. Cells(celda. Row, "H") 'forma
            ListBox1.List(ListBox1.ListCount - 1, 8) = Hoja4.Cells(celda.Row, "I") & ("    ") & Hoja4.Cells(celda.Row, "J") 'fecha y hora
            ListBox1.List(ListBox1.ListCount - 1, 9) = Hoja4.Cells(celda.Row, "K") 'usuario
        End If
    Next
     TextBox5.Value = Me.ListBox1.ListCount
     '
Dim total, mora, pago As Long
Dim varRow As Integer
For varRow = 0 To (ListBox1.ListCount - 1)
pago = pago + Val(ListBox1.Column(4, varRow))
mora = mora + Val(ListBox1.Column(6, varRow))
Next
TextBox2 = pago
TextBox3 = mora
On Error Resume Next
pago = Val(TextBox2.Value)
mora = Val(TextBox3.Value)
total = pago + mora
TextBox4.Text = total
On Error GoTo 0
'MsgBox "La Busqueda ha Finalizado.", vbInformation, "Atencion Usuario!!!"
End Sub

1 Respuesta

Respuesta
1

H o l a: Envíame en un correo nuevo el archivo con el userfor. Recuerda poner tu nombre en el asunto.

Ok ya le envié el correo.

Así quedaría para la búsqueda por nombre

Private Sub CommandButton4_Click()
    ListBox1.ColumnCount = 11
    ListBox1.Visible = True
    ListBox1.Clear
    TextBox2 = ""
    TextBox6 = ""
    TextBox7 = ""
    '
    ListBox1.ColumnWidths = "30;100;135;38;38;38;38;55;115;40;" 'asignando ancho de columnas
    Set h = Sheets("RESUMEN")
    If h.Range("A2:L10000").Find(TextBox1.Value) Is Nothing Then
        TextBox1.Text = ""
        ListBox1.Visible = False
    Else
        With h.Range("A2:L10000")
            Set C = .Find(TextBox1.Value)
            primera = C.Address
            fila = C.Row
            COLUMNA = C.Column
            Do
                ListBox1.AddItem h.Cells(fila, COLUMNA - (COLUMNA - 1))
                ListBox1.List(ListBox1.ListCount - 1, 1) = h.Cells(fila, (COLUMNA - (COLUMNA - 1)) + 1)
                ListBox1.List(ListBox1.ListCount - 1, 2) = h.Cells(fila, (COLUMNA - (COLUMNA - 1)) + 2)
                ListBox1.List(ListBox1.ListCount - 1, 3) = h.Cells(fila, (COLUMNA - (COLUMNA - 1)) + 3)
                ListBox1.List(ListBox1.ListCount - 1, 4) = h.Cells(fila, (COLUMNA - (COLUMNA - 1)) + 4)
                ListBox1.List(ListBox1.ListCount - 1, 5) = h.Cells(fila, (COLUMNA - (COLUMNA - 1)) + 5)
                ListBox1.List(ListBox1.ListCount - 1, 6) = h.Cells(fila, (COLUMNA - (COLUMNA - 1)) + 6)
                ListBox1.List(ListBox1.ListCount - 1, 7) = h.Cells(fila, (COLUMNA - (COLUMNA - 1)) + 7)
                ListBox1.List(ListBox1.ListCount - 1, 8) = h.Cells(fila, (COLUMNA - (COLUMNA - 1)) + 8) & ("   ") & h.Cells(fila, (COLUMNA - (COLUMNA - 1)) + 9)
                ListBox1.List(ListBox1.ListCount - 1, 9) = h.Cells(fila, (COLUMNA - (COLUMNA - 1)) + 10)
                '
                Call SumarDetalles(h, fila)
                '
                Set C = .FindNext(C)
                fila = C.Row
                COLUMNA = C.Column
            Loop While C.Address <> primera
        End With
    End If
End Sub
'
Sub SumarDetalles(h, fila)
'Por.Dante Amor
    Select Case h.Cells(fila, "H")
        Case "Abono/Pago": TextBox2 = Val(TextBox2) + h.Cells(fila, "E")
        Case "Enganche": TextBox6 = Val(TextBox6) + h.Cells(fila, "E")
        Case "Contado": TextBox7 = Val(TextBox7) + h.Cells(fila, "E")
    End Select
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Muchísimas gracias Dante por la respuesta aunque no es exactamente así perdón por no explicarme bien la búsqueda de " Abono/Pago, Enganche, Contado" tiene que ser dentro del mismo código del botón "buscar por fecha" como se lo envié en el correo.

H o l a: En tu correo no viene explicado que requerías la solución en el botón de "Buscar por fecha", así que actualicé el código en "Buscar por nombre".

Solamente tendrías que adaptar el código de "Buscar por nombre" en "Buscar por fecha".

Si quieres te puedo ayudar con la actualización, valora esta respuesta y crea una nueva y ahí me específicas claramente en dónde quieres el código.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas