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 41
| Function PremierJourSemaine(numSemaine, annee)
Dim d ' As Date
Dim numS ' As Integer
' premier jour de l'année
d = DateSerial(annee, 1, 1)
' numéro de la semaine du 1er janvier
numS = DatePart("ww", d, 2, 2)
' si le 1er janvier fait partie de la dernière semaine de l'année précédente
' alors passe à la semaine suivante (la première de la nouvelle année)
If numS <> 1 Then d = DateAdd("d", 7, d)
' calcule le premier jour de la première semaine de l'année
d = DateAdd("d", 1 - Weekday(d, 2), d)
' ajoute (numSemaine-1) semaines
PremierJourSemaine = DateAdd("ww", numSemaine - 1, d)
End Function
Function DateNomJSem(PremJSem, NumDuJ)
'VbSunday 1 Dimanche (valeur par défaut)
'vbMonday 2 Lundi
'vbTuesday 3 Mardi
'vbWednesday 4 Mercredi
'vbThursday 5 Jeudi
'vbFriday 6 Vendredi
'vbSaturday 7 Samedi
Dim T
DateNomJSem = PremJSem
For T = 0 To 6
If Weekday(DateAdd("d", T, PremJSem)) = NumDuJ Then
DateNomJSem = DateAdd("d", T, PremJSem)
Exit For
End If
Next
End Function
MsgBox "date du vendredi de la semaine 45 de 2011" & vbCrLf & DateNomJSem((PremierJourSemaine(45, 2011)), 6) |
Partager