'# 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
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.