'# http://fr.wikipedia.org/wiki/ISO_8601#Num.C3.A9ro_de_semaine
Public Function Week(ByVal vDate As Date) As Integer
Dim dThursday As Date
Dim dMonday As Date
Dim nResult As Single
'# Calculer le jeudi de la même semaine que la date cherchée.
'# On calculera le numéro de semaine de ce jeudi pour être sûr de compter dans la
'# bonne année sans test particulier. (Ce jeudi peut tomber l'année précédente ou suivante,
'# c'est tout l'intérêt.)
dThursday = DateAdd("D", 4 - Weekday(vDate, vbMonday), vDate)
'# On considère le 4 janvier de la même année que ce jeudi
dMonday = DateSerial(Year(dThursday), 1, 4)
'# On calcule le lundi de la même semaine que ce 4 janvier (identifiant ainsi le début du comptage;
'# noter que ce lundi peut lui même tomber l'année encore avant: peu importe)
dMonday = DateAdd("D", 1 - Weekday(dMonday, vbMonday), dMonday)
'# On calcule le nombre de jours écoulés entre nos deux dates particulières (ce jeudi et ce lundi).
'# On divise par 7 (arrondir à l'entier supérieur). On a le résultat voulu.
nResult = Abs(DateDiff("D", dThursday, dMonday)) / 7
If Fix(nResult) <> nResult Then
Week = nResult + 1
Else
Week = nResult
End If
End Function