IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modifier deux filtres de TCD en VBA pour afficher toutes les couples de valeurs (>PDF) [XL-2019]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    893
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 893
    Points : 833
    Points
    833
    Par défaut Modifier deux filtres de TCD en VBA pour afficher toutes les couples de valeurs (>PDF)
    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

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    893
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 893
    Points : 833
    Points
    833
    Par défaut
    Bonjour,

    après une nuit de sommeil et sans réponse, je me souviens que pour un bel affichage, je masque les lignes du filtre dans un plan.

    J'ouvre le plan et lance la macro.
    Elle fonctionne.

    Je remasque le plan, ça fonctionne toujours.

    Que dire d'autre ? RESOLU

    Me reste à passer l'impression des filtres sans valeurs.

    ESVBA

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête SQL en VBA pour afficher tous les enregistrements
    Par frantz44 dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/03/2019, 16h11
  2. Parcourir dossier pour afficher toutes les image
    Par Antri dans le forum ASP.NET
    Réponses: 3
    Dernier message: 29/10/2011, 17h06
  3. Réponses: 4
    Dernier message: 05/08/2011, 17h19
  4. Réponses: 4
    Dernier message: 07/07/2006, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo