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é :
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
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.

J'ai oublié quelque chose ?

Merci de vos lumières.

ESVBA