- 'Fonction pour connaitre le N° de semaine d'une date
- Function FindWeek(Jour As String) As String
-
- Dim i As Integer, TempWeek As Long
- Dim TempDay As Date
-
- 'Vérifie que la date est valide
- If IsDate(Jour) = False _
- Then FindWeek = 0: Exit Function
-
- 'Compteur qui va balayer les dates en comptant les semaines
- For i = 1 To 365
-
- 'Init de la date et du n° de semaine
- If i = 1 Then
- 'Init au 01/01/ de l'année de la date demandée
- TempDay = "01/01/" & Year(Jour)
- 'Si le jour est ni samedi ni dimanche alors semaine 1 (sinon dans la semaine 0)
- If Weekday(TempDay, vbMonday) < 6 _
- Then TempWeek = 1 _
- Else TempWeek = 0
- Else
- 'incremente le jour
- TempDay = TempDay + 1
- 'incremente la semaine si le jour est lundi
- If Weekday(TempDay, vbMonday) = 1 _
- Then TempWeek = TempWeek + 1
- End If
-
- 'Qd le compteur de jour arrive a la valeur demandée renvoie le n° de la semaine
- If TempDay = Jour _
- Then FindWeek = TempWeek: Exit Function
-
- Next
-
- End Function
-
- 'Petit ex pour tester
- Sub Test()
- MsgBox FindWeek("21/04/2012")
- End Sub
'Fonction pour connaitre le N° de semaine d'une date
Function FindWeek(Jour As String) As String
Dim i As Integer, TempWeek As Long
Dim TempDay As Date
'Vérifie que la date est valide
If IsDate(Jour) = False _
Then FindWeek = 0: Exit Function
'Compteur qui va balayer les dates en comptant les semaines
For i = 1 To 365
'Init de la date et du n° de semaine
If i = 1 Then
'Init au 01/01/ de l'année de la date demandée
TempDay = "01/01/" & Year(Jour)
'Si le jour est ni samedi ni dimanche alors semaine 1 (sinon dans la semaine 0)
If Weekday(TempDay, vbMonday) < 6 _
Then TempWeek = 1 _
Else TempWeek = 0
Else
'incremente le jour
TempDay = TempDay + 1
'incremente la semaine si le jour est lundi
If Weekday(TempDay, vbMonday) = 1 _
Then TempWeek = TempWeek + 1
End If
'Qd le compteur de jour arrive a la valeur demandée renvoie le n° de la semaine
If TempDay = Jour _
Then FindWeek = TempWeek: Exit Function
Next
End Function
'Petit ex pour tester
Sub Test()
MsgBox FindWeek("21/04/2012")
End Sub