Calculo de horas por medio de una macro
Tengo problemas con el calculo de la las horas de atrasos de los empleados de una empresa, los que se registran diariamente en una planilla. He creado una macro que permite realizar el calculo pero me presenta problemas al calcular el total de atrasos, ya que me entrega como resultado valores mayores al real.
El código que estoy utilizando es:
Sub guardar(codigo, fecha, hora As String)
Dim fechados, he, hi As String
he = #8:00:00 AM#
au = #6:30:00 AM#
Dim cuenta, resta, cuenta2, total As Date
ufila = Range("B" & Rows.Count).End(xlUp).Row
Rango = "B2:B" & Ulfila
Range("B2").Select
For i = 2 To ufila
If Range("b" & i) = codigo Then
Range("XFD1").Select
ucolumna = Cells(2, Columns.Count).End(xlToLeft).Column
Range("B" & i).Select
For X = 3 To ucolumna
fechados = CStr(Cells(2, X).Value)
If fechados = fecha Then
Cells(i, X).Value = hora
End If
Next X
cuenta = 0
resta = 0
cuenta2 = 0
total = 0
For X = 6 To ucolumna
If Cells(i, X).Value = "Ausente" Then
cuenta = cuenta + au
Else
If Cells(i, X).Value > he Then
resta = Cells(i, X).Value - he
cuenta2 = cuenta2 + resta
End If
End If
Next X
If Cells(2, ucolumna).Value <> "Horas de ausencia" Then
Cells(2, ucolumna + 1).Value = "Horas de ausencia"
End If
ucolumna = Cells(2, Columns.Count).End(xlToLeft).Column
total = cuenta + cuenta2
Cells(i, ucolumna).Select
Cells(i, ucolumna).Value = total
Selection.NumberFormat = "[h]:mm:ss"
End If
Next i
End Sub
Esta macro me entrega como resultado lo siguiente: