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 :

Filtrer un 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 confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Points : 493
    Points
    493
    Par défaut Filtrer un tableau croisé dynamique
    Bonjour,

    Je voudrais filtrer un tableau croisé dynamique sur un seul élément, mais ma boucle ne fonctionne pas!

    La voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     Sheets("D_V_B").Select
       Range("A17").Select
    Dim a As Worksheet
     With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
          "N° compte")
    For Each a In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
            "N° compte")
        If a.Name <> .PivotItems("61300 -L") Then
            a.Visible = False
        End If
    Next a
     
        End With
    Pouvez vous me dire ou je fais l'erreur?
    Cordialement,

    Jijie

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    Vu que ton sujet n'a pas trop de succès, on va essayer de s'occuper de ton cas.

    Est-ce que tu veux faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sheets("D_V_B").Activate
     
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
       "N° compte")
        For i = 1 To .PivotItems.Count
        If UCase(.PivotItems(i).Name) <> UCase("61300 -L") Then
          '.PivotItems(i).Visible = False
          Worksheets(.PivotItems(i).Name).Visible = False
        End If
        Next i
    End With
    Tu testes pour moi et on avisera par la suite.

    Bonne chance !

    EDIT : je ne sais pas ce que tu voulais faire, mais je pense que c'est ça à la base. Pour ton TCD et une colonne "N° compte", tu check tous les champs de ligne et tu vérifies que leur nom est bien égal à "61300 -L". Si ce n'est pas le cas, on vire du TCD ce champ de ligne (pas visible) ET la feuille portant ce nom devient invisible, elle aussi. Est-ce cela ?

    Sinon, pour en revenir à ce que tu avais fait, il y a, à mon avis, un problème de "déclaration". Tu déclares a comme une WorkSheet mais tu l'utilises dans ta boucle comme un PivotItem. Il faut le déclarer comme ce que c'est à la base. Pour parler du nom de la feuille, tu peux ensuite partir sur quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets(.PivotItems(a).Name)
    D'ailleurs, et pour finir, dans ta boucle, il doit être assimilé à un PivotItem et non un PivotField.

    Ca donnerait donc cela dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sheets("D_V_B").Activate
     
    Dim a As PivotItem
     
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
    "N° compte")
        For Each a In ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "N° compte").PivotItems
            If a.Name <> "61300 -L" Then
                Worksheets(.PivotItems(a).Name).Visible = False
            End If
        Next a
    End With
    DeaD

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Points : 493
    Points
    493
    Par défaut
    Merci Dead78 ,

    Désolé pour ce lg moment de réponse, mais j’étais absent !
    Pour comprendre ce que je voudrais faire, je voudrais Que sur toute la liste des cpt un seul soit coché afin que je puisse avoir le filtre de mon TCD que sur le cpte demandé. Je pense que ça devrais ressemblé à ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sheets("Dettes").Activate
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
       "N° compte")
        For i = 1 To .PivotItems.Count
        If UCase(.PivotItems(i).Name) <> UCase("40110 - Fournisseurs – Achats") Then
          '.PivotItems(i).Visible = False
          Worksheets(.PivotItems(i).Name).Visible = False
        End If
        Next i
    End With
    Mais je plante sur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          Worksheets(.PivotItems(i).Name).Visible = False
    Je cherche mais pas simple!

    a bientôt
    Cordialement,

    Jijie

Discussions similaires

  1. [WD18] Programmer et Filtrer un tableau croisé dynamique
    Par PierreXV dans le forum WinDev
    Réponses: 0
    Dernier message: 27/08/2014, 12h17
  2. [XL-2010] Comparaison entre deux dates pour filtrer dans tableau croisé dynamique
    Par Paenitentia dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/08/2014, 16h34
  3. [XL-2010] Macro pour filtrer un tableau croisé dynamique
    Par shakapouet dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 29/02/2012, 11h59
  4. VBA - Filtrer tableau croisé dynamique
    Par germ75 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/06/2011, 18h07
  5. filtrer tableau croisé dynamique sous excel
    Par kernel57 dans le forum Excel
    Réponses: 7
    Dernier message: 17/11/2006, 14h18

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