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 :

Comment Filtrer le champ d'un TCD en macro VBA (Tableau croisé dynamique)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2022
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2022
    Messages : 11
    Par défaut Comment Filtrer le champ d'un TCD en macro VBA (Tableau croisé dynamique)
    Bonjour,

    Je suis débutant en VBA , j’ai une feuille dans laquelle j’ai construit un TCD en macro VBA. La source de données de ce TCD est récupérée dans une deuxième feuille se trouvant dans un répertoire de fichier.

    je souhaiterais faire le filtrage sur un champ nommé « Libelé du groupe Perf », la macro s’exécute sans aucun souci , mais quand je vais dans mon TCD je ne vois aucun filtrage sur le champ « Libelé du groupe Perf ».

    Voici le code:
    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
    With ActiveSheet.PivotTables("mon tableau croisé 
    dynamique").PivotFields("Libellé du Groupe Perf")
        .PivotItems("Prev PP globale").Visible = True
        .PivotItems("Val Désirio").Visible = True
        .PivotItems("Val Epargne Vie").Visible = True
        .PivotItems("Val Gestion Préconisée").Visible = True
        .PivotItems("Val Ret ind.").Visible = True
        .PivotItems("Conquêtes Part multirisques").Visible = True
        .PivotItems("Conquetes Pro Agri").Visible = True
        .PivotItems("Conquetes Pro ACPS").Visible = True
        .PivotItems("PN IARD HT").Visible = True
        .PivotItems("Nb Auto").Visible = True
        .PivotItems("Nb GAV").Visible = True
        .PivotItems("Nb Habitation").Visible = True
        .PivotItems("Nb Santé ind.").Visible = True
        .PivotItems("Nb GBH").Visible = True
     
    End With
    J'ai regardé sur plusieurs forums m’ais j’arrive pas à trouver la solution. Quelqu’un pourrait svp m’aider à résoudre ce problème de filtrage?

  2. #2
    Membre Expert Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Par défaut
    Comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub FiltrerViaUneVariable()
        Dim monChamp As PivotField
        Dim TexteVoulu As String
     
        Set monChamp = ActiveSheet.PivotTables("Mon_TCD").PivotFields("Libelé du groupe Perf")
        TexteVoulu = "Le Meilleur"
     
        monChamp.CurrentPage = TexteVoulu
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub FiltrerViaUneConstante()    'e.g. contenu d'une cellule
        Dim monChamp As PivotField
        Dim TexteVoulu As String
     
        Set monChamp = ActiveSheet.PivotTables("Mon_TCD").PivotFields("Libelé du groupe Perf")
        TexteVoulu = ActiveWorkbook.Sheets("Sheet1").Range("F2").Value  'coordonnées à adapter bien entendu
     
        monChamp.CurrentPage = TexteVoulu
    End Sub

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2022
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2022
    Messages : 11
    Par défaut
    Bonjour,

    Je vous remercie pour votre réponse , parcontre en utilisant votre code j'ai une erreur qui s'affiche en disant impossible ce céfinir la propriété CurrentPage de la classe PivotField (voir ci-jointe la capture de l'erreur).

    L'erreur s'effectue sur l'avant dernière ligne , sur laquelle la propriété CurrentPage est utilisée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub filtrage_champ_par_variable()
     
        Dim monChamp As PivotField
        Dim TexteVoulu As String
     
        Set monChamp = ActiveSheet.PivotTables("mon tableau croisé dynamique").PivotFields("Libellé du groupe Perf")
        TexteVoulu = "Prev PP globale"
     
        monChamp.CurrentPage = TexteVoulu
     
    End Sub
    Savez vous svp à quoi est due cette erreur?
    Nom : Capture.PNG
Affichages : 228
Taille : 13,8 Ko

  4. #4
    Membre Expert Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Par défaut
    Je ne sais pas quelle version Excel vous utilisez, mais vos pouvez vous en sortir en enregistrant une macro dans laquelle vous performez les actions manuellement, puis exploitez le code généré par la macro.
    Essayez et si ça ne va pas, vous pouvez toujours poster copie de votre fichier avec données fictives pour que l'on puisse intervenir.

Discussions similaires

  1. [AC-2010] Comment rendre un champ texte visible ou invisible en VBA
    Par lololebricoleur dans le forum VBA Access
    Réponses: 3
    Dernier message: 17/01/2020, 14h46
  2. Réponses: 10
    Dernier message: 29/01/2019, 16h27
  3. [XL-2010] Changer les champs d'un TCD par macro
    Par stevenring dans le forum Excel
    Réponses: 1
    Dernier message: 21/09/2014, 14h41
  4. TCD VBA tableau croisé dynamique
    Par pierrotpoulpo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/05/2007, 14h24
  5. [ADO.NET][VB.Net]Comment filtrer certains champs de DataRow?
    Par Philorix dans le forum Accès aux données
    Réponses: 3
    Dernier message: 14/02/2006, 20h26

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