Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm
'boucle sur toutes les cellules éditées de la colone A de l'onglet "Feuil1"
For Each cel In Sheets("Feuil1").Range("A1:A" & Sheets("Feuil1").Range("A65536").End(xlUp).Row)
If Day(cel.Value) = 1 Then 'condition : si le jour de la cellule cel est 1
Me.ComboBox1.AddItem cel.Value 'ajoute la valeur de la cellule à la ComboBox1
'applique le format "mmmm aaaa" à la valeur ajoutée
Me.ComboBox1.Column(0, Me.ComboBox1.ListCount - 1) = Format(Me.ComboBox1.Column(0, Me.ComboBox1.ListCount - 1), "mmmm yyyy")
'récupère dans la colonne caché de la COmboBox1 le numéro de la ligne de la cellule
Me.ComboBox1.Column(1, Me.ComboBox1.ListCount - 1) = cel.Row
End If 'fin de la condition
Next cel 'prochaine cellule cel de la boucle
End Sub
Private Sub ComboBox1_Change() 'au changement dans la ComboBox1
'sélectionne la cellule de la colonne A, ligne récupérée dans colonne masquée de la ComboBox1
Sheets("Feuil1").Cells(Me.ComboBox1.Column(1, Me.ComboBox1.ListIndex), 1).Select
ActiveWindow.ScrollRow = ActiveCell.Row 'place la ligne en haut de la fenêtre active
Unload Me 'vide et ferme l'UserForm
End Sub