Calculo de horas transcurridas entre dos turnos de trabajo en VBA

Tengo un excel con una base de datos de trabajadores donde me indica el dia que trabajó, la hora de entrada y la hora de salida.

[Codigo de Empleado]       [Fecha]             [Hora de entrada]       [Hora de salida]

[ZG9SJHNFYSHDJJD]      [10/9/2020]      [9:34:00 AM]              [6:32:00 PM]

[ZG9SJHNFYSHDJJD]      [10/10/2020]    [10:01:00 AM]           [5:22:00 PM]

Total de horas entre turnos: 15:31:00

Realmente lo que yo necesito calcular es cuantas veces ha habido menos de 12 horas entre la hora de salida de un día y la hora de entrada del día siguiente. Es decir, cuando la empresa no ha cumplido con que debe haber 12 horas entre los turnos de trabajo de los empleados.

¿Cómo se puede calcular eso en VBA?

Respuesta

Asumiendo que el código del trabajador esta en columna A y las fechas de entrada y salida en B y C respectivamente:

Sub horas()
Dim m As Long, fila As Long, valor1 As Double, valor2 As Double, suma As Double, resultado As Double
suma = 0
m = ActiveSheet.UsedRange.Rows.Count
For fila = m To 3 Step -1
    valor1 = Cells(fila, "B").Value
    valor2 = Cells(fila, "C").Offset(-1, 0).Value
        resultado = valor1 - valor2
    If resultado < 0.5 Then
    suma = suma + 1
    End If
Next
MsgBox "Existen " & suma & " veces en las que la diferencia de jornada es menor a 12 horas"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas