Como aplicar la condición sumar si en listbox de excel

Como podría ejecutar esta fórmula. Tengo un listbox con dos columnas una con cantidades y la otra con varios criterios( "abono", "pago", "enganche") repetidos al momento de darle clic en un botón que en tres textbox me cololque las suma de los criterios antes mencionados. Por favor me estoy volviendo loco porque no consigo esta fórmula he intentado con algunas pero me da error.

1 respuesta

Respuesta
2

Suponiendo que en la columna 1 del listbox tienes los valores y en la columna 2, los conceptos, entonces el código es:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    For i = 0 To ListBox1.ListCount - 1
        Select Case LCase(ListBox1.List(i, 1))
            Case "abono":       abo = abo + CDbl(ListBox1.List(i, 0))
            Case "pago":        pag = pag + CDbl(ListBox1.List(i, 0))
            Case "enganche":    eng = eng + CDbl(ListBox1.List(i, 0))
        End Select
    Next
    TextBox1 = abo
    TextBox2 = pag
    TextBox3 = eng
End Sub

Ejemplo:

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

Perdone que no había podido ver su respuesta y gracias por responder. Estoy tratando de aplicarla al form que tengo pero no me da el resultado ¿en que podría estar fallando? solo cambie el numero de columnas y algo en los conceptos. Le envío el correo con una muestra espero no molestarlo mucho gracias.

Te anexo el código actualizado

Private Sub CommandButton1_Click()
    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))
        'Por.Dante Amor
        For i = 0 To ListBox1.ListCount - 1
            mora = mora + Val(ListBox1.List(i, 6))
            Select Case ListBox1.List(i, 7)
                Case "Abono/Pago":  abo = abo + CDbl(ListBox1.List(i, 4))
                Case "Contado":     pag = pag + CDbl(ListBox1.List(i, 4))
                Case "Enganche":    eng = eng + CDbl(ListBox1.List(i, 4))
            End Select
        Next
        TextBox2 = abo
        TextBox6 = pag
        TextBox7 = eng
   ' 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
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas