Suma de rango con formato hora da error.

Tengo una hoja donde hay horarios de trabajo con una hora de entrada y otra de salida, para poder calcular la diferencia de horas aplico el siguiente código.

Public Sub calcular_horas()
Dim resta As Variant
Dim t1 As Variant
Dim t2 As Variant
Dim i As Integer
Dim h As Integer
For h = 6 To 61 Step 5
           For i = 2 To 32
                  Worksheets("PROVA").Cells(h, i).NumberFormat = "hh:mm"
                  Worksheets("PROVA").Cells(h + 1, i).NumberFormat = "hh:mm"
                  t1 = Worksheets("PROVA").Cells(h, i).Value
                  t2 = Worksheets("PROVA").Cells(h + 1, i).Value
                 resta = Format(resta, "hh:mm")
                   If t2 > t1 Then
                         resta = t2 - t1
                 End If
                 If t2 = t1 Then
                         resta = ""
                 End If
                If t2 < t1 Then
                         resta = t2 + 24 - t1
                End If
              Worksheets("PROVA").Cells(h + 2, i).NumberFormat = "hh:mm"
               Worksheets("PROVA").Cells(h + 2, i).Value = resta
       Next i
     Worksheets("PROVA").Cells(h + 2, i).Select
    ActiveCell.FormulaR1C1 = "=SUM(RC[-31]:RC[-1])"
Next h
Worksheets("PROVA").Range("AG65").Select
ActiveCell.FormulaR1C1 = "=SUM(R[-57]C:R[-2]C)"
Columns("AG:AG").EntireColumn.AutoFit
End Sub

Básicamente lo que hace es mirar si la hora de salida es menor que la de entrada (ya que hay horarios nocturnos) para cambiar el orden de la resta si hace falta.

El formato para poder verlo correctamente es "hh:mm". Estas restas parciales las hace bien pero cuando intento sumar todas las diferencias del mes da un resultado enorme que no se corresponde.

La hoja a que la que hago referencia es:

El número al final de la fila debería ser de 170:30h pero da 10106:30h qué no sé a que se debe.

La misma hoja con horarios diurnos hace bien los totales:

En este caso da lo que tiene que dar

No sé si tiene que ver pero las dos horas que se restan aparecen como horas del estilo 12:00:00 sin embargo el resultado sale una fecha y una hora, a pesar de que es el mismo formato.

A ver si alguien sabe a qué se debe

Añade tu respuesta

Haz clic para o