Para Dam como puedo sumar varios listbox

Buenos dias Dante Amor quisiero saber como sumo datos que estan dentro de un listbox

datos1, dato2, dato3, dato4, dato5

Si el dato2, dato3, dato4  estos listbox estan vacios que ponga:

                    dato5=dato1

Si el dato3, dato4  estos listbox estan vacios que ponga:

                    dato5=dato1+dato2

Si el dato4  estos listbox estan vacios que ponga:

                  dato5=dato1+dato2+dato3

sino

                dato5=dato1+dato2+dato3+dato4

Todos los datos son listbox.

Gracias.

1 respuesta

Respuesta
1

Cada que se carga, se borra o se asignan cursos se tiene que hacer la suma.

Este es la suma en la carga:

Private Sub ComboBox1_Change() 'carga los registros existentes
'Por.Dante Amor
    Label3 = ""
    Label39 = ""
    If ComboBox1 = "" Then Exit Sub
    Label3 = Hoja2.Cells(ComboBox1.ListIndex + 2, "B")
    '
    Set h = Sheets("Asignaciones")
    Set r = h.Columns("A")
    Set b = r.Find(ComboBox1, Lookat:=xlWhole)
    If Not b Is Nothing Then
        ncell = b.Address
        Do
            ListBox2. AddItem
            ListBox2. List(ListBox2.ListCount - 1, 0) = h. Cells(b.Row, "B")
            ListBox2. List(ListBox2.ListCount - 1, 1) = h. Cells(b.Row, "C")
            ListBox2. List(ListBox2.ListCount - 1, 2) = h. Cells(b.Row, "D")
            ListBox2. List(ListBox2.ListCount - 1, 3) = h. Cells(b.Row, "E")
            ListBox2. List(ListBox2.ListCount - 1, 4) = h. Cells(b.Row, "F")
            ListBox2.List(ListBox2.ListCount - 1, 5) = b.Row
            Label39 = Val(Label39) + h.Cells(b.Row, "F")
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> ncell
    End If
End Sub

Esta es la suma en el borrado

Private Sub CommandButton2_Click() 'Borrar
'Por.Dante Amor
    If ListBox2.ListIndex > -1 Then
        For i = 0 To ListBox2.ListCount - 1
            If ListBox2.List(i, 5) = 0 Then
                existen = True
            End If
        Next
        f = ListBox2.List(ListBox2.ListIndex, 5)
        If f = 0 Then
            ListBox2.RemoveItem ListBox2.ListIndex
        Else
            If existen Then
                MsgBox "Existen asignaciones pendientes de Insertar", vbCritical, "NO SE PUEDE BORRAR"
                existen = False
                Exit Sub
            Else
                Sheets("asignaciones").Rows(f).Delete
                ListBox2.Clear
                ComboBox1_Change
            End If
        End If
    End If
    Label39 = ""
    For i = 0 To ListBox2.ListCount - 1
        Label39 = Val(Label39) + ListBox2.List(i, 4)
    Next
    existen = False
End Sub

Y por último este es en las asignaciones

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) 'asignar
'Por.Dante Amor
    If ListBox1.ListIndex > -1 Then
        If Val(Label39) + Val(ListBox1.List(ListBox1.ListIndex, 4)) > 20 Then
            MsgBox "El docente tiene más de 20 horas asignadas", vbInformation, "Asignar"
            Exit Sub
        End If
        '
        UserForm3.Show
        If UserForm3.ListBox1.ListIndex > -1 Then
            turno = UserForm3.ListBox1.List(UserForm3.ListBox1.ListIndex)
            ListBox2.AddItem
            ListBox2.List(ListBox2.ListCount - 1, 0) = ListBox1.List(ListBox1.ListIndex, 0)
            ListBox2.List(ListBox2.ListCount - 1, 1) = ComboBox2
            ListBox2.List(ListBox2.ListCount - 1, 2) = ComboBox3
            ListBox2.List(ListBox2.ListCount - 1, 3) = turno
            ListBox2.List(ListBox2.ListCount - 1, 4) = ListBox1.List(ListBox1.ListIndex, 4)
            ListBox2.List(ListBox2.ListCount - 1, 5) = 0
            Label39 = Val(Label39) + Val(ListBox1.List(ListBox1.ListIndex, 4))
            'ListBox1.RemoveItem ListBox1.ListIndex
        End If
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas