Bonsoir,
je souhaite créer les PDF de tous les couples de valeurs de deux filtres d'un TCD basé sur une seule table.
Cela fonctionne bien pour un filtre même si c'est le second filtre par ordre qui fonctionne.
J'ai adapté le code pour deux filtres (2 boucles) hors seule la boucle interne avec "PageFields(2)" continue à fonctionner.
J'obtiens l'erreur 1004 : Erreur définie par l'application ou par l'objet
Voici le code modifié :
Si je mets la ligne produisant l'erreur en remarque, le "pt.PivotFields(pf2.Name).CurrentPage = pi2.Name" fonctionne correctement mais je n'ai pas le premier filtre.
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 Sub ImpressionTCDAlphabetiqueAll() On Error GoTo BugImpressionTCDAlphabetiqueAll Dim pt As PivotTable Dim pf1 As PivotField, pf2 As PivotField Dim pi1 As PivotItem, pi2 As PivotItem Set pt = Worksheets("TCD alphabétique").PivotTables(1) '1 seul TCD sur la feuille Set pf1 = pt.PageFields(1) '1er filtre Set pf2 = pt.PageFields(2) 'Second filtre For Each pi1 In pf1.PivotItems 'Pour tous les éléments correspondant au premier filtre pt.PivotFields(pf1.Name).CurrentPage = pi1.Name 'ERREUR ICI 'Pf1 et pi1 ont les bonnes valeurs, j'ai testé pi1.name en mettant le caractère 1 ou le nombre 1 For Each pi2 In pf2.PivotItems pt.PivotFields(pf2.Name).CurrentPage = pi2.Name 'ActiveSheet.PrintOut 'pour imprimer ActiveSheet.PrintPreview 'pour tester Next pi2 Next pi1 '--- pf1.ClearAllFilters pf2.ClearAllFilters Set pi1 = Nothing Set pi2 = Nothing Set pf2 = Nothing Set pf1 = Nothing Set pt = Nothing Exit Sub BugImpressionTCDAlphabetiqueAll: MsgBox Err & Chr(10) & Error$ Resume Next End Sub
J'ai oublié quelque chose ?
Merci de vos lumières.
ESVBA
Partager