Compléments pour Microsoft Access

http://access.fr.free.fr/

Ajouter jours ouvrés (Dates & Heures)

Description 

Cette fonction permet de retourner une date correspondant à une date de départ + un nombre de jours ouvrés.

On considère dans cette fonction qu'un jour ouvré est un jour qui n'est ni un samedi, ni un dimanche et ni un jour férié.

Cette fonction fait appel à 2 autres fonctions qui sont :

 
Synthaxe 

Expression_Date = fAddOpenDay (dtDeb, dtFin)

La synthaxe de la fonction fAddOpenDay comprend les éléments suivants :

ElémentsDescription

dt

Expression de type date correspondant à la date à laquelle on souhaite ajouter des jours ouvrés.

nbDay

Expression numérique correspondant au nombre de jours ouvrés que l'on veut ajouter.
 
Exemple 

Cet exemple permet de retourner un msgBox indiquant la date de départ, le nombre de jours ouvrés que l'on veut y ajouter et le résultat obtenue.

Public Function fAddOpenDay_EXE()

Dim dtStart As Date
Dim intDay As Integer
Dim strMsgBox As String

dtStart = Format(#3/31/2005#, "dd/mm/yyyy")
intDay = 30

strMsgBox = "Si on ajoute " & intDay & " jours ouvrés" & vbCrLf
strMsgBox = strMsgBox & "à la date " & dtStart & "," & vbCrLf
strMsgBox = strMsgBox & "la fonction AddOpenDay retournera la date :" & vbCrLf
strMsgBox = strMsgBox & Format(fAddOpenDay(dtStart, intDay), "dd/mm/yyyy") 

MsgBox strMsgBox

End Function

Cet exemple retournera le msgBox suivant :

 
Code de la fonction 


Public Function fAddOpenDay(dt As Date, nbDay As Integer) As Date
'** Ajouter des jours ouvrés à une date

Dim dblDt As Double
Dim nb%

dblDt = CDbl(dt)
Do Until nb = nbDay
    dblDt = dblDt + 1
    If WeekDay(CDate(dblDt)) <> 1 _
        And WeekDay(CDate(dblDt)) <> 7 _
        And JourFérié(CDate(dblDt)) = False Then
            nb = nb + 1
    End If
Loop

fAddOpenDay = CDate(dblDt)

End Function