Bonjour,
Je viens chercher de l'aide pour surmonter un problème qui consiste à lister les critères de filtrage cochés d'un tableau croisé dynamique.
J'utilise le code suivant.
Mais il ne passe jamais dans la condition si plusieurs items sont sélectionnés dans le filtre (en revanche il y passe quand un seul item est sélectionné).
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 Sub lister_filtres_tcd_1() Dim pvtTable As PivotTable Dim pvtItem As PivotItem Dim nwSheet As Worksheet Set nwSheet = Worksheets.Add nwSheet.Activate Worksheets("tcd").Select Set pvtTable = Worksheets("tcd").PivotTables("tcd1") rw = 0 For Each pvtItem In pvtTable.PivotFields("NOM_FORMATEUR").PivotItems If pvtItem.Visible = True Then rw = rw + 1 nwSheet.Cells(rw, 1).Value = pvtItem.Name End If Next pvtItem End Sub
J'ai aussi essayé avec le code suivant mais je n'obtiens que la valeur "All" en cas de sélection multiple. Quand un seul item est sélectionné ça fonctionne.
Pouvez-vous me dire où je me trompe svp ?
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 Sub lister_filtres_tcd_2() Dim pvtTable As PivotTable Dim pvtItem As PivotItem Dim pvtField As PivotField Dim nwSheet As Worksheet Set nwSheet = Worksheets.Add nwSheet.Activate Worksheets("tcd").Select Set pvtTable = Worksheets("tcd").PivotTables("tcd1") For i = 1 To pvtTable.VisibleFields.Count Set pvtField = pvtTable.VisibleFields(i) With pvtField If pvtField.Orientation = xlPageField Then For j = 1 To pvtField.VisibleItems.Count Set pvtItem = pvtField.VisibleItems(j) nwSheet.Cells(j, 1).Value = pvtItem.Name Next j End If End With Next i End Sub
Partager