Sumar total de una columna Excel según el valor de otra

Tengo una macro Excel que me suma el total de una columna según el valor que tengo en otra. Hasta ahí bien, lo que quiero conseguir es hacer esta misma operación con dos condicionales mas.

Como se ve en la imagen el la celda "K4" que se llama "tbTurno" elijo el turno y en la celda "L4" "tbSumaHoras" es donde se aloja el resultado al ejecutar la macro. Pues esta misma operación me gustaría hacerla con la celda "K5" y "K6" ejecutando la misma macro.

Saludos y buen día a todos.

Adjunto código e imagen.

Private Sub CommandButton1_Click()
Dim i, j As Integer
Dim filas As Integer
Dim turno As String
Dim horas As Double
turno = Range("tbTurno") 'Celda "K4"
Suma = 0
For i = 1 To Worksheets.Count
    filas = Worksheets(i).Cells(Rows.Count, 2).End(xlUp).Row
    For j = 4 To filas
        If Worksheets(i).Cells(j, 4).Value = turno Then
        Suma = Suma + Worksheets(i).Cells(j, 5).Value
        End If
    Next j
 Next i
 Range("tbSumaHoras") = Suma 'Celda "L4"
End Sub

Respuesta
1

Puedes hacer estas modificaciones en el código.

Observa que he definido Turno1, turno2 y turno3, así como suma1, suma2 y suma3

Private Sub CommandButton1_Click()
Dim i, j As Integer
Dim filas As Integer
Dim turno1 As String
Dim turno2 As String
Dim turno3 As String

Dim horas As Double
turno1 = Range("K4") 'Celda "K4"
turno2 = Range("K5") 'Celda "K5"
turno3 = Range("K6") 'Celda "K6"
Suma1 = 0: Suma2 = 0: Suma3 = 0
For i = 1 To Worksheets.Count
    filas = Worksheets(i).Cells(Rows.Count, 2).End(xlUp).Row
    For j = 4 To filas
        If Worksheets(i).Cells(j, 4).Value = turno1 Then
        Suma1 = Suma1 + Worksheets(i).Cells(j, 5).Value
        ElseIf Worksheets(i).Cells(j, 4).Value = turno2 Then
        Suma2 = Suma2 + Worksheets(i).Cells(j, 5).Value
        ElseIf Worksheets(i).Cells(j, 4).Value = turno3 Then
        Suma3 = Suma3 + Worksheets(i).Cells(j, 5).Value
        End If
    Next
 Next i
 Range("L4") = Suma1 'Celda "L4"
 Range("L5") = Suma2 'Celda "L5"
 Range("L6") = Suma3 'Celda "L6"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas