Bonjour à tous,
J'ai écrit une code (qui fonctionne je précise !), pour alimenter une ComboBox depuis un tableau filtré. Seul problème, c'est quand, après avoir été filtré, le tableau ne contient plus qu'une seule ligne... En effet, à ce moment, le reçois le message d'erreur suivant:
" Erreur d'exécution 381 : Impossible de définir la propriété List .Index de table de propriétés non valide."
Sur un autre post, on m'a suggéré de tester le résultat de filtration... donc de compter le nombre de ligne résultant du filtrage ...
Malheureusement (il y a toujours un malheureusement), je ne sais pas comment compter le nombre de ligne "visible", résultant d'un tri/filtration
Voici mon code:
Les deux critères de tri sont défini par l'utilisateur via deux autres ComboBox. Le tableau duquel est issu le résultat du tri/filtre est "TableauCriteres" Sur la feuille "Critères".
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 Public Sub AlimenterComboBox() 'Permet d'alimenter une ComboBox sur base des critères de tri envoyés à la fonction. Dim Domaine As String, Niveau As String Domaine = ComboBoxDomaineDeCompetence.Text 'Définition des critères de tri Niveau = ComboBoxNiveau.Text With Sheets("Critères").ListObjects("TableauCriteres") .Range.AutoFilter Field:=2, Criteria1:=Domaine 'Trie TableauCriteres selon les paramètres envoyés en argument .Range.AutoFilter Field:=3, Criteria1:=Niveau End With '####### Remplissage ComboBox avec les données triées #### Me.ComboBoxCriteresAlimentes.List = Range("TableauCriteres[Critères]").SpecialCells(xlCellTypeVisible).Formula Sheets("Critères").ListObjects("TableauCriteres").Range.AutoFilter Field:=2 'Annule le filtrage Sheets("Critères").ListObjects("TableauCriteres").Range.AutoFilter Field:=3 End Sub
Je vous remercie d'avance pour votre aide !![]()
Partager