voila ce que j'ai dans la macro actuelle :
Private Sub UserForm_Initialize()
Dim un, emb, cli As Collection, Cell As Range, anne_sem() As String
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Feuil2.Activate
Call Trier
Feuil4.Select
haut_base_R = Feuil2.Range("A65000").End(xlUp).Row
haut_saisie_R = Feuil1.Range("A65000").End(xlUp).Row
On Error Resume Next
Set un = New Collection
Set emb = New Collection
Set cli = New Collection
postion = Cells(6, Feuil1.Range("IV6").End(xlToLeft).Column).Address
Set Plage = Feuil2.Range("F6:F" & haut_base_R)
Set Plage_emb = Feuil1.Range("A8:A" & haut_saisie_R)
Set Plage_Cli = Feuil1.Range("B6:" & postion)
'-----------------------------------annee semaine
For Each Cell In Plage
un.Add Cell, CStr(Cell)
Next Cell
For i = 1 To un.Count
Me.annee.AddItem un.Item(i).Value2
Next i
en fait là : les années semaines sont pris d'une liste ou en enreigstre manuellement les semaines de reception, mais si par exemple je receptionne rien pendant 2 ou 3 semaines, je ne vais pas les avoir dans mon userform, c'est pour cette raison que je cherche a les mettre en place aumatiquement. comme ca j'aurais toutes les semaines.