Dans le doute de savoir si le 28 appartient toujours à la dernière semaine de l'année j'ai gardé mon idée de base de boucler tant que la semaine n'est pas supérieur ou égale à 52.
De cette manière ça à l'aire de fonctionner. Merci Jean-Eric, pour ta vive réaction !!
Private Sub Annee_Change()
Dim NbSem As Integer, cpt As Integer
Dim DateTempo As Date
CalendarInit
Me.Sem.Clear
DateTempo = CDate("01/01/" & CInt(Me.Annee) + 1)
NbSem = DatePart("ww", DateTempo - 1 - Weekday(DateTempo - 1, 2) + 4, 2, 2)
If NbSem < 51 Then
cpt = 0
Do While NbSem < 51
cpt = cpt + 1
NbSem = DatePart("ww", DateTempo - cpt - Weekday(DateTempo - cpt, 2) + 4, 2, 2)
Loop
End If
For i = 1 To NbSem
Me.Sem.AddItem i
Next i
End Sub
En tout cas via ce post j'en apprend beaucoup sur la gestion des dates, des semaines, etc. Je pense que le post sera utile pour plein de monde ! (enfin j'espère) :)