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 TCD par VBA avec cellules dans feuilles différentes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Femme Profil pro
    Contrôle de gestion
    Inscrit en
    Novembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôle de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 4
    Par défaut Filtrer un TCD par VBA avec cellules dans feuilles différentes
    Bonjour,

    Je souhaite faire plusieurs filtres sur un TCD en fonction de cellules présentes sur une autre feuille mais la macro ne fonctionne pas. Je suis débutante sur le language VBA.... merci pour votre aide.

    ci dessous la macro utilisée:
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Sub TESTMAJTCD()
    '
    ' TESTMAJTCD Macro
    '
     
    Dim result As String
     
    Sheets("RENTABILITE").Select
    result = Sheets("RENTABILITE").Range("A2").Value
    Sheets("TCD BASE").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("TYPE PRODUIT").ClearAllFilters
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("TYPE PRODUIT").CurrentPage = result
     
    Sheets("RENTABILITE").Select
    result = Range("B2").Value
    Sheets("TCD BASE").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("FORMAT").ClearAllFilters
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("FORMAT").CurrentPage = result
     
    Sheets("RENTABILITE").Select
    result = Sheets("RENTABILITE").Range("C2").Value
    Sheets("TCD BASE").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("TYPE CLIENT").ClearAllFilters
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("TYPE CLIENT").CurrentPage = result
     
    Sheets("RENTABILITE").Select
    result = Sheets("RENTABILITE").Range("D2").Value
    Sheets("TCD BASE").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("CENTRALE").ClearAllFilters
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("CENTRALE").CurrentPage = result
     
    Sheets("RENTABILITE").Select
    result = Sheets("RENTABILITE").Range("E2").Value
    Sheets("TCD BASE").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("ENSEIGNE").ClearAllFilters
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("ENSEIGNE").CurrentPage = result
     
    Sheets("RENTABILITE").Select
    result = Sheets("RENTABILITE").Range("F2").Value
    Sheets("TCD BASE").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Code Stat 3").ClearAllFilters
    ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Code Stat 3").CurrentPage = result
     
    End Sub

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Des Segments ne suffiraient-ils pas ? Si la source des TCD est la même, un segment connecté à tous les TCD les filtre d'un clic

    CurrentPage n'est utilisable que sur des champs de page

  3. #3
    Membre à l'essai
    Femme Profil pro
    Contrôle de gestion
    Inscrit en
    Novembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôle de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 4
    Par défaut
    Bonjour,

    Merci pour votre réponse. Si vous parlez de segments dans le TCD non cela ne fonctionne pas car le résultat du TCD sert à modifier un tableau qui va chercher certaines valeurs dans le TCD.
    Qu'est ce que les champ de page. Désolé je suis vraiment débutante sur ces termes!!

  4. #4
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    RE

    Dans un TCD il y a 4 zones pour les champs :
    • champs de page ou filtre
    • champs en étiquettes de lignes
    • champs en étiquettes de colonnes
    • champs en valeurs


    seuls les champs es zone de page ou filtre peuvent utiliser currentpage

    "le résultat du TCD sert à modifier un tableau qui va chercher certaines valeurs dans le TCD" n'est pas clair et fait craindre une approche inutilement compliquée...

    Peux-tu joindre un exemple anonymisé de quelques lignes...

  5. #5
    Membre à l'essai
    Femme Profil pro
    Contrôle de gestion
    Inscrit en
    Novembre 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôle de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2018
    Messages : 4
    Par défaut
    ok je comprends les TCD mais c'est le lien avec le vba où je suis totalement novice. Je vous joint le fichier en PJ. J'ai un onglet avec ma base qui me sert de source pour mon TCD. Après sur ma feuille de synthèse onglet rentabilité c'est le résultat du TCD mais sous une autre forme. Je ne pense pas pouvoir faire ma synthèse directement sur le TCD même avec des champ calculé c'est pourquoi je voulais que mon TCD soit filtrer en fonction des critères de ma feuille synthèse rentabilité (1ère ligne avec les listes) et une mise à jour automatique avec une macro et le bouton MAJ qui va bien. merci pour votre aide.
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    RE

    Déjà ne pas utiliser SOMME.SI.ENS mais LIREDONNEESTABCROISDYNAMIQUE

    Les Segments filteraient sans problème : le VBA ne sert à rien

    Je ne serai pas dispos avant ce soir tard.

    Pas le temps de détailler mais je pense qu'on peut tout faire par TCD...

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/01/2018, 00h56
  2. [XL-2007] Insérer formule VBA avec incrémentation dans cellule
    Par Omnbre dans le forum Excel
    Réponses: 4
    Dernier message: 29/06/2015, 14h05
  3. Réponses: 15
    Dernier message: 26/01/2015, 19h37
  4. [XL-2010] Filtrer un TCD par VBA
    Par Narez dans le forum Excel
    Réponses: 8
    Dernier message: 02/12/2013, 09h27
  5. Comparer des cellules dans feuilles différentes
    Par assiec dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 04/06/2008, 13h20

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