Bonjour,

Voici mon problème, je doit parcourir un ensemble de donné, récupérer toutes les années différentes qui existe pour en faire une DropDown list.

Jusqu'ici pas de problèmes, ensuite il faudrait qu'a chaque changement de la sélection dans la liste, je cache/montre les ligne qui ne correspondent pas à l'année sélectionnée.

Voici comment je fait jusqu'ici :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Private Function BuildDateComboBox()
 
    Set CellRef = Range("DatePicker").Cells
 
    With Feuil8
 
        On Error Resume Next
 
            .Shapes.Item ("DatePickerDropDown")
 
        If Err.Number <> 0 Then
 
            Set DatePickerDropDown = .Shapes.AddFormControl(xlDropDown, CellRef.Left, CellRef.Top, CellRef.Width, CellRef.Height)
 
            DatePickerDropDown.Name = "DatePickerDropDown"
            DatePickerDropDown.ControlFormat.SmallChange
 
        End If
 
 
        DatePickerDropDown.ControlFormat.RemoveAllItems
        For Each d In GetYears()
                DatePickerDropDown.ControlFormat.AddItem d
        Next d
 
        On Error GoTo 0
 
    End With
 
End Function
Le problème est que je n'arrive pas à écouter un évènement ou exécuter une action au changement de la valeur de ma liste. Pour pouvoir effectuer les opérations dont je parle plus haut.

Donc :

Puis-je écouter le changement de mon FormControl DropDown?

Existe-t-il une façon plus simple de faire cela ?

Merci d'avance.

Au fait : Cela doit être compatible avec Excel Office XP.

(Y parais qu'on se fait taper dessus quand on donne pas la version )