Bonjour à toutes et à tous,
Je prépare un fichier fait de diverses présentations d'un même TCD sur autant de feuilles différentes. Pour éviter aux utilisateurs des manipulations sur les tcd, je leur propose de filtrer les champs de page d'un TCD source "PF", et ce filtre se répercute sur les "PF1", "PF2", etc.
Je bute sur le code qui effectue le filtre après avoir mis un "X" dans une cellule de choix :
Si je fais un choix dans la colonne à cocher, le filtre se fait bien, par contre, si je ne fais aucun choix, c'est la dernière ligne de la liste qui m'apparaît au lieu de (Tous).
X DIRECTIONS
X 1 - GÉNÉRALE
O 2 - VENTES
O 3 - RESSOURCES HUMAINES
O 4 - SERVICES TECHNIQUES
Résultat : 1 - GÉNÉRALE
X DIRECTIONS
O 1 - GÉNÉRALE
O 2 - VENTES
O 3 - RESSOURCES HUMAINES
O 4 - SERVICES TECHNIQUES
Résultat : 4 - SERVICES TECHNIQUES
N.B. Le champ "X" et le champ "DIRECTIONS" sont des noms définis dynamiques.
Le code utilisé est le suivant :
Pouvez-vous m'aider ?
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Sub PivotUnHideMarkedItems() Dim wsDP As Worksheet Dim ws As Worksheet Dim rngItems As Range Dim c As Range Dim i As Integer Dim j As Integer Dim pt As PivotTable Dim pf As PivotField Dim pi As PivotItem Set wsDP = Sheets("Dir_Progr") '++++++++++++++++++++++++++++++++++++ Application.ScreenUpdating = False Application.DisplayAlerts = False Application.EnableEvents = False For Each ws In Sheets(Array(wsDP.Name)) Set rngItems = wsDP.Range("ListeDIRECTIONS") ' For Each pt In ws.PivotTables Set pf = pt.PivotFields("DIRECTIONS") On Error Resume Next With pf .CurrentPage = "(All)" .AutoSort xlManual, .SourceName 'show all pivot items For Each pi In pf.PivotItems pi.Visible = True Next pi For Each c In rngItems If UCase(c.Offset(0, -1).Value) = "" Then .PivotItems(c.Value).Visible = False End If Next c .AutoSort xlAscending, .SourceName End With Next pt Next ws End Sub
Merci d'avance
Chordially
Partager