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 :

Connecter 2 TCD entre eux [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Par défaut Connecter 2 TCD entre eux
    Bonsoir,

    Savez vous comment je peux connecter 2 TCD entre eux qui se trouvent dans la même feuille ?

    Ce que je voudrais c'est que lorsque je filtre le premier tableau que le deuxième se fasse en même temps aussi :

    Nom : TCD developpeur.JPG
Affichages : 283
Taille : 79,6 Ko

    Vous allez peut être me dire de créer des slicers et de les connecter aux tableaux. Mais je ne veux pas utiliser de slicers.

    Merci pour votre retour

    Cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Tu pourrais essayer de cette manière

    Dans le code de la feuille, tu mets ceci (ça pourrait aussi être dans ThisWorkbook en ajoutant le paramètre Sh)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
        Application.EnableEvents = False
        Filtrer Target
        Application.EnableEvents = True
    End Sub
    Et dans un module ou dans la feuille (Change les noms des TCD selon ce que tu as)
    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
    Sub Filtrer(TCD1 As PivotTable)
        Dim TCD2 As PivotTable
        Dim Fld As PivotField
        Dim Itm As PivotItem
     
        If TCD1.Name = "Tableau croisé dynamique1" Then
            Set TCD2 = ActiveSheet.PivotTables("Tableau croisé dynamique2")
        Else
            Set TCD2 = ActiveSheet.PivotTables("Tableau croisé dynamique1")
        End If
     
        On Error Resume Next
        For Each Fld In TCD1.PivotFields
            For Each Itm In Fld.PivotItems
                TCD2.PivotFields(Fld.Position).PivotItems(Itm.Name).Visible = Itm.Visible
            Next
        Next
        On Error GoTo 0
        Application.EnableEvents = True
    End Sub
    J'ai fait des tests rapides et ça semble bien fonctionner pour les 2 TCD s'ils sont identiques.
    Autrement, il faudrait modifier quelque peu le code, j'imagine...

  3. #3
    Membre éclairé
    Femme Profil pro
    Inscrit en
    Mai 2013
    Messages
    305
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 305
    Par défaut
    Bonjour Parmi,

    Excellent. Ca marche très très bien !

    Merci infiniement Parmi

    Cordialement

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/01/2012, 16h43
  2. Réponses: 0
    Dernier message: 13/01/2012, 11h31
  3. [AC-2007] Initialiser les Filtres des colonens d'un TCD sur ouverture
    Par nicburger dans le forum IHM
    Réponses: 0
    Dernier message: 29/09/2011, 09h50
  4. Réponses: 8
    Dernier message: 12/06/2007, 20h58

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