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 :

Filtre sur un TCD issu d'un cube


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 154
    Par défaut Filtre sur un TCD issu d'un cube
    Bonjour

    J'ai un rapport d'un cube OLAP qui me donne un résultat semblable à un Tableau Croisé Dynamique.

    Je cherche à faire un filtre sur ce cube pour afficher tout sauf quelques valeurs.


    J'ai ce code qui fonctionne et me permet de tout afficher

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub FiltreInfocentreTout()
    '
    ' FiltreInfocentreTout Macro Ok fonctionne pour tout prendre
    '
     
        Sheets("CA").Select
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].[Opération - Code]" _
            ).VisibleItemsList = Array("")
    End Sub
    J'ai maintenant ce code qui fonctionne et qui me permet de ne retenir que les 3 critères indiqués.

    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
     
    Sub FiltreInfocentre3critères()
    '
    ' FiltreInfocentre3critères Macro OK fonctionne avec 3 critères
    '
     
        Sheets("CA").Select
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].[Opération - Code]" _
            ).VisibleItemsList = Array( _
            "[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].&[RAP_BABCOL_G2577M]" _
            , _
            "[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].&[RAP_BABCOL_G2578M]" _
            , _
            "[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].&[RAP_BABCOL_G2639M]" _
            )
    End Sub

    Maintenant, je n'arrive pas à faire en sorte de tout prendre sauf les critères identifiés.
    Et le top serait de tout prendre sauf les critères commençant par "RAP_".

    D'avance Merci de votre aide.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 419
    Par défaut
    Bonjour,

    Une piste: il y a VisibleItemsList mais aussi HiddenItemsList.

    Cordialement.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 154
    Par défaut
    Bonjour

    J'ai lu la page du lien mis dans le message, et essayé de l'adapter à mon cas personnel.
    J'ai essayé ceci, mais sans succès. Il m'indique "erreur définie par l'application ou par l'objet"
    Désolé, je suis débutant sur VBA.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub UseHiddenItemsList()
     
     ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
     "[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].[Opération - Code]" _
     ).HiddenItemsList = _
     Array("[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].[RAP_BABCOL_G2577M]")
     
    End Sub

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 419
    Par défaut
    N'ayant jamais du utiliser un cube OLAP, en l'absence de conseil donné par d'autres participants au forum, je ne peux donner que des pistes. Pour votre dernier message, il me semble qu'il manque un & devant le dernier élément:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub UseHiddenItemsList()
     ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
     "[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].[Opération - Code]").HiddenItemsList = _
     Array("[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].&[RAP_BABCOL_G2577M]")
    End Sub
    Cordialement.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 154
    Par défaut
    Merci EriDgn

    Malheureusement, même message d'erreur "erreur définie par l'application ou par l'objet".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub UseHiddenItemsList2()
     ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
     "[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].[Opération - Code]" _
     ).HiddenItemsList = _
     Array("[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].&[RAP_BABCOL_G2577M]")
    End Sub

  6. #6
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 419
    Par défaut
    Juste pour vérifier, que donne ceci:
    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
    Sub TestHidden()
     
        Sheets("CA").Select
     
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].[Opération - Code]").VisibleItemsList = _
        Array("")
     
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].[Opération - Code]").HiddenItemsList = _
        Array("[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].&[RAP_BABCOL_G2577M]", _
              "[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].&[RAP_BABCOL_G2578M]", _
              "[06 - Dim_Opérations_Ventes et Précommandes].[Opération - Code].&[RAP_BABCOL_G2639M]")
     
    End Sub
    Cordialement.

Discussions similaires

  1. Filtre sur un tableau issu de la base de donnée
    Par Stomac dans le forum Power BI
    Réponses: 3
    Dernier message: 05/04/2019, 14h03
  2. [XL-2007] Bloquer certains filtres sur un TCD et la table des champs
    Par nono95200 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/11/2014, 12h13
  3. [XL-2010] Filtre sur un TCD en vba
    Par RomBon dans le forum Excel
    Réponses: 3
    Dernier message: 31/07/2014, 10h10
  4. filtre sur un TCD
    Par pimpom81 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/06/2012, 16h44
  5. [XL-2007] filtre sur un TCD
    Par dodo69 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/07/2011, 11h24

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