Tu Código lo Adapte así.
Option Compare Database
Option Explicit
'==================================
'Variables Generales de Asignacion.
Dim xH_Ingreso As Date
Dim xH_Salida As Date
Dim xFech_INGRESO As Date
Dim xFech_SALIDA As Date
Dim xHS_Descanso As Date
Dim xHR_Descanso As Date
Dim xFech_S_Descanso As Date
Dim xFech_R_Descanso As Date
Const IJLDiurna = #6:00:00 AM# 'Inicio Jornada Laboral Diurna
Const IJLNocturna = #9:00:00 PM# 'Inicio Jornada Laboral Nocturna
'==================================
'**************************************
'Varibles de Calculo Horas Nocturnas...
Dim NumHorasNocturnas As Double
Dim NumHorasDescansoNocturnas As Double
Dim NunDias As Integer
Dim xMiComprobacion As Double
Dim HorasLaboradasNoche As Double
'**************************************
'Dim xH_Laboradas As Date
'Dim xTotal_HOL As Date
'Dim xDiurnas_HOL As Date
'Dim xNocturnas_HOL As Date
'Dim xTotal_HEL As Date
'Dim xDiurnas_HEL As Date
'Dim xNocturnas_HEL As Date
'Dim xValor_Trab_Noct As Double
'Dim xValor_Trab_Ext_Diurno As Double
'Dim xValor_Trab_Ext_Noct As Double
'Dim xValor_Trab_Total As Double
'Dim xJornada_Nocturna As Date 'Horas Laboradas Nocturnas
'Dim xJornada_Diurna As Date 'Horas Laboradas Diurnas
Private Sub cmd_Cargar_Click()
'::::::::::::::::::::::::::::::::::::::::::::
'Asignacion de Valores a Variables Generales.
xFech_INGRESO = Me.Fech_INGRESO2.Value
xFech_SALIDA = Me.Fech_SALIDA2.Value
xH_Ingreso = Me.H_INGRESO2.Value
xH_Salida = Me.H_SALIDA2.Value
xFech_S_Descanso = Me.Fech_S_DESCANSO2.Value
xFech_R_Descanso = Me.Fech_R_DESCANSO2.Value
xHS_Descanso = Me.H_S_DESCANSO2.Value
xHR_Descanso = Me.H_R_DESCANSO2.Value
'::::::::::::::::::::::::::::::::::::::::::::
'============================================================================================================================
'Calculo de Horas Nocturnas...
NunDias = DateDiff("d", xFech_INGRESO, xFech_SALIDA)
If NunDias = 0 Then
If (xH_Ingreso < IJLDiurna And xH_Salida < IJLDiurna) Or (xH_Ingreso >= IJLNocturna And xH_Salida >= IJLNocturna) Then
NumHorasNocturnas = DateDiff("n", xH_Ingreso, xH_Salida) / 60
ElseIf xH_Ingreso >= IJLDiurna And xH_Ingreso < IJLNocturna And xH_Salida >= IJLDiurna And xH_Salida < IJLNocturna Then
NumHorasNocturnas = 0
Else
If xH_Ingreso < IJLDiurna Then
NumHorasNocturnas = DateDiff("n", xH_Ingreso, IJLDiurna) / 60
End If
If xH_Salida > IJLNocturna Then
NumHorasNocturnas = NumHorasNocturnas + DateDiff("n", IJLNocturna, xH_Salida) / 60
End If
End If
Else
'Calculamos las horas nocturnas del día de entrada
If xH_Ingreso < IJLDiurna Then
NumHorasNocturnas = DateDiff("n", xH_Ingreso, IJLDiurna) / 60
'Si entra a Trabajar entre las 09:00:00 p.m. y las 12:00:00 a.m. (Medianoche)
ElseIf xH_Ingreso >= IJLNocturna And xH_Ingreso >= #12:00:00 AM# Then
xMiComprobacion = (DateDiff("n", #12:00:00 AM#, xH_Ingreso)) / 60 'prueba mia
NumHorasNocturnas = (1440 - DateDiff("n", #12:00:00 AM#, xH_Ingreso)) / 60
Else
NumHorasNocturnas = 3
End If
'Calculamos las horas nocturnas del día de salida, sumándolas a las que ya teníamos
If xH_Salida < IJLDiurna Then
NumHorasNocturnas = NumHorasNocturnas + DateDiff("n", #12:00:00 AM#, xH_Salida) / 60
ElseIf xH_Salida >= IJLNocturna Then
NumHorasNocturnas = NumHorasNocturnas + 6 + DateDiff("n", IJLNocturna, xH_Salida) / 60
Else 'Si la Salida del trabajador es antes de las 9:00:00 p.m. sumamos 5 Horas Laborales Nocturnas Ordinarias.
NumHorasNocturnas = NumHorasNocturnas + 6
End If
'Si la salida se produce con más de un día de diferencia, hay que añadirle 8 horas por día
If NunDias > 1 Then
NumHorasNocturnas = NumHorasNocturnas + 8 * (NunDias - 1)
End If
End If
MsgBox NumHorasNocturnas
'Final de Calculo de Horas Nocturnas...
'============================================================================================================================
End sub
Pero Tengo una Duda: antes aclaro, en Colombia la Jornada Diurna es desde las 6:00 am hasta las 9:00 pm y la Nocturna es desde las 9:00 pm hasta las 6:00 am del dia siguiente.
Entonces mi duda es:
Una persona entra a trabajar a el día 06/06/2019 a las 06:00:00 p.m. hasta el dia siguiente 07/06/2019 a las 07:00:00 am.
debo calcular:
1. las Horas Diurnas Ordinarias que son: 3 ( de 6 a 9 de la noche).
2. Las Horas Nocturnas Ordinarias "Para Completar la Jornada Ordinaria Laboral que es de 8 horas" las cuales serian las siguientes 5 horas (9 a 2 de la madrugada)
3. las horas que quedan desde las 2 hasta las 6 de la mañana que son 4 tengo que almacenarlas en Horas Extra Nocturnas y...
5. la Hora que queda de 6 a 7 de la mañana debo almacenarla en Horas Extras Diurnas.
Mi pregunta es si ¿dentro del mismo código que adapte en la parte de arriba puedo hacer todos estos cálculos o eventualmente me corresponde hacer otro fragmento de código aparte?