'le 01/01/2023 =dimanche 01 janvier 2023
'c'est un dimanche donc le 7 eme jour de la semaine pour nous
'ca ne peux donc pas etre le debut d'une semaine
'c'est donc bien le dimanche de la semaine 52 de l'année précédente
'sachant que pour que ca soit une semaine il faut que le jour soit au minimum le 4 eme a savoir un jeudi (vbfirstfourday)
Sub a() 'on est bon pour le francais
Debug.Print DatePart("ww", CDate("01/01/2023"), vbMonday, vbFirstFourDays)
End Sub
Sub a2() 'pour 2007 ' on est bon
Debug.Print ISOWEEK2007(CDate("01/01/2023"))
End Sub
Sub a3() 'equivalent à no.semaine inutile et à proscrire on est pas bon!!!!!!!!!
Debug.Print WorksheetFunction.WeekNum(CLng(CDate("01/01/2023")), vbFirstFourDays)
End Sub
Sub a4() 'equivalent à no.semaine.iso là oui on a bien la semaine identifiée
Debug.Print WorksheetFunction.IsoWeekNum(CLng(CDate("01/01/2023")))
End Sub
'fonction perso
Function ISOWEEK2007(dat As Date)
Dim X&: X = CLng(dat)
ISOWEEK2007 = Evaluate("= TRUNC((" & X & "-WEEKDAY(" & X & ",2)+11-DATE(YEAR(" & X & "-WEEKDAY(" & X & " ,2)+4),1,1))/7)")
End Function