Function GetLastFullWeekEnd(Optional ByVal dDate As Variant) As Date
If IsMissing(dDate) Then dDate = Date
If VarType(dDate) <> vbDate Then Err.Raise vbDate, "GetLastWeekEnd", "Paramètre invalide"
GetLastFullWeekEnd = DateSerial(Year(dDate), Month(dDate) + 1, 0) - 1
While Weekday(GetLastFullWeekEnd, vbMonday) <> 6
GetLastFullWeekEnd = GetLastFullWeekEnd - 1
Wend
End Function
' EXEMPLE D'UTILISATION
Private Sub Form_Load()
MsgBox "AVRIL 2005 -> samedi " & GetLastFullWeekEnd(#4/1/2005#)
MsgBox "FéVRIER 2006 -> samedi " & GetLastFullWeekEnd(#2/1/2006#)
MsgBox "CE MOIS-CI -> samedi " & GetLastFullWeekEnd
Unload Me
End Sub