Bonjour,
oui, Datepart("ww",...) ramène une erreur sur certaines dates dont le 30/12/19, mais le 31 est correct lui. Seuls les derniers lundis sont touchés.
Les prochaines erreurs seront les 29/12/2031, 31/12/2035, 30/12/2047 et 29/12/2059.
Un contournement :
Function numSem(dat1 As Date) As Long
numSem = DatePart("ww", dat1, vbMonday, vbFirstFourDays)
If numSem > 52 Then If DatePart("ww", dat1 + 7, vbMonday, vbFirstFourDays) = 2 Then numSem = 1
End Function
eric