calcul de date à partir du numero de semaine
bonjour à tous,
j'ai la fonction suivante qui me calcule le numero de semaine "administrative" à partir d'une date... est-il possible d'obtenir l'operation inverse à partir du numero de semaine, obtenir les dates des premier et dernier jours de la dite semaine ?
Code:
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
Function fnWeek(MyDate As Date) As String
Dim NoSemaine As Integer
Dim NoAnnee As Integer
If Not IsDate(MyDate) Then
fnWeek = ""
Else
NoSemaine = Format(MyDate, "ww", vbMonday, vbFirstFourDays)
If NoSemaine = 53 Then
If Format(MyDate + 7, "ww", vbMonday, vbFirstFourDays) = 2 Then
NoSemaine = 1
End If
End If
Select Case NoSemaine
'Affecter la semaine 1 de fin d'année au début de l'année suivante
Case 1
If Month(MyDate) = 12 Then
NoAnnee = Year(MyDate) + 1
Else
NoAnnee = Year(MyDate)
End If
Case Is < 52
NoAnnee = Year(MyDate)
'Affecter la semaine 52 ou 53 de début d'année à la fin d'année précédente
Case Is >= 52
If Month(MyDate) = 1 Then
NoAnnee = Year(MyDate) - 1
Else
NoAnnee = Year(MyDate)
End If
End Select
fnWeek = Format(NoSemaine, "00")
End If
End Function |