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 :

Liaison filtre tableaux dynamiques


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Par défaut Liaison filtre tableaux dynamiques
    bonjour,

    Je n'arrive pas a lier les filtres de 2 tableaux dynamiques. Je voudrais, lorsque je choisis dans le filtre de mon premier tableau, que ce filtre devienne aussi le filtre du second tableau.
    Voici le code que j'ai commence a utiliser pour faire cette manip:

    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
     
    Sub liaisonTableauIndic()
     
    Dim monPivIt As Object, Mavariable As Long, i As Long
     
    Application.ScreenUpdating = False
    With ActiveSheet.PivotTables("PivotTableIndic").PivotFields("Code Article")
     
    For Each monPivIt In .PivotItems
    monPivIt.Visible = True
    Next
    On Error Resume Next
    Application.ScreenUpdating = False
    For Each monPivIt In .PivotItems
    If monPivIt.Visible = True Then monPivIt.Name = Mavariable
    Next
    End With
     
    With ActiveSheet.PivotTables("PivotTableRatio").PivotFields("Code Article")
    If i = Mavariable Then monPivIt.Name = True Else monPivIt.Name = False
     
    Application.ScreenUpdating = True
    End With
    End Sub
    Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut soluce ?
    bonjour ,

    Pour refleter les choix du filtre la soluce ci-dessous à adapter


    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
     
    Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
     
    If Target.Name <> "Tableau croisé dynamique1" Then Exit Sub
     
    Dim PivotTblTcd1 As PivotTable
    Dim PivotTblTcd2 As PivotTable
    Dim x As Integer
        Set PivotTblTcd1 = ThisWorkbook.Worksheets("TCD").PivotTables("Tableau croisé dynamique1")
        Set PivotTblTcd2 = ThisWorkbook.Worksheets("TCD").PivotTables("Tableau croisé dynamique2")
     
     
        For x = 1 To PivotTblTcd1.PivotFields("Pays").PivotItems.Count
            PivotTblTcd2.PivotFields("Pays").PivotItems.Item(x).Visible = PivotTblTcd1.PivotFields("Pays").PivotItems.Item(x).Visible
        Next
     
        ' Faire le raffraichissement du tcd 2
        PivotTblTcd2.RefreshTable
    End Sub
    Je pense avec cette approche cela devrait fonctionner il suffit d'adapter ce code au contexte de la feuille pivottableindic et pivottabletatio si les deux tcd partage la meme source de données.



  3. #3
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Par défaut Probleme
    Merci Lynx mais ca ne marche toujjours pas. J'ai changer et mis le nom de mes tcd mais rien de change lorsque je choisi une valeur dans mon filtre, cela ne change le filtre de l'autre tcd. Est ce qu'il faut que je rajoute qqchose si mes tableaux st ds 2 feuilles differentes.
    Merci en tt cas de ton aide.

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour,
    Regarde ce morceau de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Set PivotTblTcd1 = ThisWorkbook.Worksheets("TCD").PivotTables("Tableau croisé dynamique1")
        Set PivotTblTcd2 = ThisWorkbook.Worksheets("TCD").PivotTables("Tableau croisé dynamique2")
    Il permet de dire quelle tableau est PivotTblTcd1 et quel tableau est PivotTblTcd2.
    Par exemple le 1 est le tableua dans thisworkbook (ce classeur), dans longlet (worksheets) TCD, et c'est un pivot table (TCD) nommé Tableau croisé dynamique1.
    Pareil pour le 2 juste sont nom change.

    C'est a toi de les modifier pour les adapter a ton cas en modifiant le nom du tableau et la feuille ou il se trouve

  5. #5
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Par défaut
    Je l'ai deja modifier.
    Voici ce que ca me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub LinkTableUpdate(ByVal Target As PivotTable)
     
    If Target.Name <> "PivotTableIndic" Then Exit Sub
     
    Dim PivotTableIndic As PivotTable
    Dim PivotTableRatio As PivotTable
    Dim x As Integer
    Set PivotTableIndic = ThisWorkbook.Worksheets("TableIndic").PivotTables("PivotTableIndic")
    Set PivotTableRatio = ThisWorkbook.Worksheets("Prediction").PivotTables("PivotTableRatio")
        For x = 1 To PivotTableIndic.PivotFields("Article Code").PivotItems.Count
            PivotTableRatio.PivotFields("Article Code").PivotItems.Item(x).Visible = PivotTableIndic.PivotFields("Article Code").PivotItems.Item(x).Visible
        Next
        PivotTableRatio.RefreshTable
    End Sub
    Je ne comprend pas.
    D'ailleurs, comment fait t on pour tester ce code car etant private sub, il est invisible lorsque je veux le tester?
    Merci de ton aide.

  6. #6
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Le code se lance a chaque mise a jour du TCD , mais il faut l'avoir mis au bon endroit (enfin je crois)
    Met une pause au début du code (le petit point rouge dans la marge )
    Et fait une mise a jour du TCD regarde si ca le lance. Je ne sais pas si le code doit être dans le code de la feuille ou thisworkbook ou ailleurs je ne me suis jamais lancé dans les TCD

  7. #7
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 14
    Par défaut
    Ca ne fonctionne tjrs pas, je comprends pas.
    est que quelqu'un pourrait jeter un coup d'oeil a mon code pour voir si il y a qq chose qui cloche.
    Merci

  8. #8
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut un extrait
    de ton fichier excel serait la bienvenue pour prospecter dans code afin de solutionner le déclenchement de la mise à jour des filtres .

    A plus .......

Discussions similaires

  1. Tableaux dynamiques
    Par sebduth dans le forum Fortran
    Réponses: 5
    Dernier message: 05/07/2005, 15h36
  2. tableaux dynamiques
    Par Mynautor dans le forum C++
    Réponses: 23
    Dernier message: 12/02/2005, 02h45
  3. [D7] Tableaux dynamiques dans un record
    Par bobby-b dans le forum Langage
    Réponses: 2
    Dernier message: 30/06/2004, 23h23
  4. Article sur les tableaux dynamiques
    Par Eric Sigoillot dans le forum Langage
    Réponses: 2
    Dernier message: 16/04/2004, 22h00
  5. [Kylix] Tableaux dynamiques sour Kylix2
    Par Krän dans le forum EDI
    Réponses: 6
    Dernier message: 07/10/2003, 14h31

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