'--------------------------------------------------------------------------------------- ' Procédure_____: No_Semaine_ISO ' Date__________: 26/03/2021 ' Auteur________: www.CapLSS.com - https://www.caplss.com/viewtopic.php?t=215 ' Objet_________: Retourner le numéro de semaine d'une date fournie ' Référence_____: Fonction générique à l'initialisation ' Appel_________: No_Semaine_ISO(LaDate, Optional Sem0) ' Retour________: N° de semaine au format ISO ' Options_______: Si Sem0 := true, retourne 0 si la 1ère semaine est la fin de la 53ème ' Compatibilité_: (2003-2019)Office (11.0-16.0)Excel (+)32-bit (+)64-bit ' Statut________: (x)Validé ()En attente validation ()En cours développement '--------------------------------------------------------------------------------------- ' 2009.10.26 v1.00 DEV Création initiale, fournit le numéro de semaine ISO de la date fournie en paramètre. ' 2021.03.26 v1.10 DEV Ajout d'une option pour retourner 0, si la première semaine est la fin de la 53ème de l'année précédente. ' Function No_Semaine_ISO(LaDate As Date, Optional Sem0 As Boolean) As Long ' LaDate en Jours entiers LaDate = Int(LaDate) ' Détermination du Numéro de Semaine ISO No_Semaine_ISO = DateSerial(Year(LaDate + (8 - Weekday(LaDate)) Mod 7 - 3), 1, 1) No_Semaine_ISO = ((LaDate - No_Semaine_ISO - 3 + (Weekday(No_Semaine_ISO) + 1) Mod 7)) \ 7 + 1 ' Si la première semaine est la 53 de l'année précédente, doit-on renvoyer 0 ? If No_Semaine_ISO = 53 And Month(LaDate) = 1 And Sem0 Then No_Semaine_ISO = 0 End If ' End Function