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 :

Synchronisation de plusieurs TCD


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Synchronisation de plusieurs TCD
    Bonjour à tous,

    J'ai cherché dans le forum mais sans trouver ce que je cherche ! !
    Alors voici ma question : comment synchroniser par VBA un "Filtre du rapport" de plusieurs TCD cibles par rapport un TCD source qui possède le même "Filtre du rapport".
    Jusqu'à présent, j'utilisais simplement la valeur de la cellule du TCD source, mais avec Excel 2007/2010 on à la possibilité de sélectionner plusieurs éléments dans le filtre, et là ça coince ! !
    Peut-être peut-on lire et mettre à jour directement la valeur du PivotFields, mais je ne sais pas faire !
    Merci de votre aide.

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    la syntaxe pour filtrer est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        With ActiveSheet.PivotTables(LeNomdelaTablePivot).PivotFields(LeNomDuChampAFiltrer)
            .PivotItems("1").Visible = False
            .PivotItems("2").Visible = False
            .PivotItems("3").Visible = False
            .PivotItems("4").Visible = False
            .PivotItems("5").Visible = False
            ...
        End With

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour Mayekeul et merci pour la réponse.

    J'ai du mal néanmoins à l'appliquer à ma demande. Les "1" et "2" ...... doivent-ils être remplacés par les items réels (sinon j'ai un msg d'erreur)
    Voilà la syntaxe que j'utilisais jusqu'à présent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    With F3
    .PivotTables("Tableau croisé dynamique1").PivotFields("Période"). _
    CurrentPage = F2.Range("B2").Value
    .PivotTables("Tableau croisé dynamique2").PivotFields("Période"). _
    CurrentPage = F2.Range("B2").Value
    .PivotTables("Tableau croisé dynamique3").PivotFields("Période"). _
    CurrentPage = F2.Range("B2").Value
    End With
    Où F2.Range("B2").Value était la valeur de la cellule correspondant au filtre de page du TCD source (Excel 2003 par exemple).

    Or dans 2007, le filtre peut cumuler plusieurs valeurs (Oprion : "Sélectionner plusieurs éléments"). Dans ce cas mon code ne fonctionne plus !

    Alors j'ai essayé de remplacer : = F2.Range("B2").Value par : = F2.PivotTables("Tableau croisé dynamique1").PivotFields("Période").CurrentPage, mais sans succès !
    Dernière modification par AlainTech ; 02/01/2011 à 17h31. Motif: Suppression de la citation et balises [code]

  4. #4
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    oui les un et les deux, c'était juste pour l'exemple

    pour la selection multiple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        ActiveSheet.PivotTables("PT1").PivotFields("PF1").CurrentPage =  "(All)"
        With ActiveSheet.PivotTables("PT1").PivotFields("PF1")
            .PivotItems("1").Visible = False
            ...
        End With
        ActiveSheet.PivotTables("PT1").PivotFields("PF1").enableMultiplePageItems = True
    sinon, un bon truc pour t'y retrouver est d'utiliser l'enregistreur de macro

  5. #5
    Invité
    Invité(e)
    Par défaut
    OK,OK !

    Si je comprends bien, le code que tu me proposes permet d'affecter le filtre sur les TCD "cibles".
    Mais comment récupérer les éléments du filtre du TCD "source" pour ensuite les appliquer aux cibles ?

    (J'ai bien sûr essayer l'enregisteur dont je suis un fidèle utilisateur qui me donne le même type de syntaxe que ce que tu me proposes).

    Pour rappel : on affecte manuellement les filtres sur le TCD source et on souhaite les appliquer automatiquement aux TCD cibles !
    Dernière modification par AlainTech ; 02/01/2011 à 17h32. Motif: Suppression de la citation

  6. #6
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    petite question

    que représente


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

Discussions similaires

  1. [XL-2007] Synchroniser les filtres de plusieurs TCD
    Par BikiOP dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/03/2014, 13h29
  2. Synchronisation de plusieurs TCD
    Par scarlisse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/05/2012, 10h48
  3. Un filtre pour plusieurs TCD - C'est possible ?
    Par taisherg dans le forum Excel
    Réponses: 11
    Dernier message: 16/10/2007, 14h55
  4. Synchronisation entre plusieurs base SQL Server
    Par vivoli12 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 19/05/2007, 13h47

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