Bonjour,
Je viens chercher de l'aide car j'ai un petit souci avec une macro sur un TCD.
Je cherche via une macro à créer automatiquement un TCD dont un filtre doit se faire uniquement sur les dates concernant l'année 2015. Je n'arrive pas à faire cela ..
Voici mon code :
Je vous joint un fichier Test, je n'ai pu y intégrer le code (impossible de télécharger le fichier "xlsm" ...).
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 Sub TCD_CPT_GPI() ' ' Macro "CD_CPT_GPI" qui permet de créer le TCD au niveau de la compta et du GPI : ' '----------------------------------------------------------------------------------- ' Sheets("OS11").Select Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Sheets.Add After:=Sheets(Sheets.Count) Sheets(3).Name = "TCD1" ' ' Etiquettes de lignes ' Dim DerniereLigne As Long Dim DerniereColonne As Long DerniereLigne = 14 DerniereColonne = 7 ' ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "OS11!R1C1:R" & DerniereLigne & "C" & DerniereColonne & "", Version:=xlPivotTableVersion14).CreatePivotTable _ TableDestination:="TCD1!R3C1", TableName:="Tableau croisé dynamique1", _ DefaultVersion:=xlPivotTableVersion14 Sheets("TCD1").Select ' With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Code de l'opération") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Libellé de l'opération") .Orientation = xlRowField .Position = 2 End With ' ' Filtre du rapport ' With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Immo") .Orientation = xlPageField .Position = 1 End With With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Immo") .PivotItems("NI").Visible = False End With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Immo").EnableMultiplePageItems = True ' With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Date transaction") .Orientation = xlPageField .Position = 1 ' ' Ne fonctionne pas ' For i = 1 To .PivotItems.Count If .PivotItems(i) = "2015" Then .PivotItems(i).Visible = True Else .PivotItems(i).Visible = False End If Next i ' End With ' ' Etiquettes de colonnes ' With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Type indicateur") .Orientation = xlColumnField .Position = 1 End With With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Type indicateur") '.PivotItems("BDT").Visible = False '.PivotItems("ENG").Visible = False '.PivotItems("MDP").Visible = False End With ' ' Valeurs ' ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _ PivotTables("Tableau croisé dynamique1").PivotFields("Montant"), "Somme de Montant", xlSum ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Immo").CurrentPage = "(All)" ' ' Permet de ne pas afficher les sous-totaux ' Range("A2").Select ssTotaux.SuppressionSousTotauxTCD ' ' Permet d'afficher le TCD sous forme tabulaire ' ActiveSheet.PivotTables("Tableau croisé dynamique1").RowAxisLayout xlTabularRow ' ' Permet de redimensionner la largeur des colonnes ' Columns("A:E").EntireColumn.AutoFit Range("A1").Select End Sub
Si jamais quelqu'un avait la solution, ça me serait très utile.
Merci d'avance !!
Partager