1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| Option Compare Database
Option Explicit
Dim NbJourMois As Long
Dim i As Integer
Dim d1 As Date, d2 As Date, d3 As Date
Public Function DebutSemaine(ByVal DateSemaine As Date) As Date 'Trouve le début de la semaine en passant en paramètre un jour quelconque
i = Weekday(DateSemaine, vbMonday)
DebutSemaine = DateAdd("d", -i + 1, DateSemaine)
End Function
'Calcul du nombre d'heures pointées imputables
Public Function NbHeuresSemaineImpu(ByVal DateSemaine As Date, SalarieLog As String) As Double
d1 = DebutSemaine(DateSemaine)
d2 = d1 + 6
NbJourMois = DaysInMonth(Month(DateSemaine), Year(DateSemaine))
d3 = DateSerial(Year(DateSemaine), Month(DateSemaine), NbJourMois)
If Month(d2) > Month(DateSemaine) Then
NbHeuresSemaineImpu = Nz(DSum("[NbHeuresPointées]", "[T_Pointage]", "[DatePointage] BETWEEN " & FDateUs(d1) & " AND " & FDateUs(d3) _
& " AND [LoginSalarié]='" & SalarieLog & "'"), 0)
Else
NbHeuresSemaineImpu = Nz(DSum("[NbHeuresPointées]", "[T_Pointage]", "[DatePointage] BETWEEN " & FDateUs(d1) & " AND " & FDateUs(d2) _
& " AND [LoginSalarié]='" & SalarieLog & "'"), 0)
End If
End Function
'Calcul du nombre d'heures par semaines pour les non imputables
Public Function NbHeuresSemaineNonImputable(ByVal DateSemaine As Date, SalarieLog As String) As Double
d1 = DebutSemaine(DateSemaine)
d2 = d1 + 6
NbJourMois = DaysInMonth(Month(DateSemaine), Year(DateSemaine))
d3 = DateSerial(Year(DateSemaine), Month(DateSemaine), NbJourMois)
If Month(d2) > Month(DateSemaine) Then
NbHeuresSemaineNonImputable = Nz(DSum("[NbHeuresPointées]", "[T_Pointage_Non_Imputable]", "[DatePointage] BETWEEN " & FDateUs(d1) & " AND " & FDateUs(d3) _
& " AND [LoginSalarié]='" & SalarieLog & "'"), 0)
Else
NbHeuresSemaineNonImputable = Nz(DSum("[NbHeuresPointées]", "[T_Pointage_Non_Imputable]", "[DatePointage] BETWEEN " & FDateUs(d1) & " AND " & FDateUs(d2) _
& " AND [LoginSalarié]='" & SalarieLog & "'"), 0)
End If
End Function |
Partager