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 :

Changer un filtre tcd sous VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    contrôleur de gestion sociale
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : contrôleur de gestion sociale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Par défaut Changer un filtre tcd sous VBA
    Bonjour,
    Je cherche à faire un changer un filtre d'un tcd automatiquement en fonction d'une valeur qui se trouve sur une autre feuille.
    La valeur Région se trouve dans ma feuille TDB;
    dans ma feuille ou se trouve le TCD, il faut que le tcd reprenne la valeur de la feuille TDB pour mettre à jour le filtre Région de mon TCD

    Le code que j'ai trouvé est celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub FilterPivotTable()
    Sheets("TCD").Activate
     
    With ActiveSheet
     
    .PivotTables("PivotTable1").PivotFields("Région").ClearAllFilters
    .PivotTables("PivotTable1").PivotFields("Région").PivotFilters.Add _
    Type:=xlCaptionEquals, Value1:=Worksheets("TDB").Test.Value
    End With
     
    End Sub
    Mais ca bloque sur la partie PivotTables. Le message d'erreur : run time error 1004


    Qui peux m'aider please

  2. #2
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    ... Value1:=Worksheets("TDB").Test.Value
    la valeur de Value1 est correcte ?

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  3. #3
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 705
    Par défaut
    Bonjour,
    Qu'est-ce que Test ? Est-ce me nom d'une cellule ? Si c'est le cas, alors il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("TDB").Range("Test").Value

  4. #4
    Membre du Club
    Femme Profil pro
    contrôleur de gestion sociale
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : contrôleur de gestion sociale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Par défaut Filtre tcd
    Oui merci j'ai corrigé mais le problème est que je reste bloqué avant même d'arriver à la dernière ligne.
    Le message d'erreur s'affiche qu moment ou le TCD de ma feuille doit être activé.

    Est ce qu'il faut nommer un TCD pour qu'il puisse l'identifier?

  5. #5
    Membre du Club
    Femme Profil pro
    contrôleur de gestion sociale
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : contrôleur de gestion sociale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Par défaut
    J'ai essayé ce code également mais j'ai toujours le message d'erreur sur l'identification du TCD de ma feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_Activate()
    Dim i As Integer
     
    Application.ScreenUpdating = False
    For i = 1 To 3
    ActiveSheet.PivotTables("Tableau croisé dynamique" & i).PivotFields("REGION 04 2017"). _
    ClearAllFilters
    ActiveSheet.PivotTables("Tableau croisé dynamique" & i).PivotFields("REGION 04 2017"). _
    CurrentPage = IIf(Sheets("TDB").Range("B7").Value = "", "(All)", Sheets("TDB").Range("B7").Value)
    Next
    End Sub
    J'ai un message d'erreur : Error - Unable to get the pivottables property of the worksheet class

  6. #6
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 705
    Par défaut
    As-tu essayé d'obtenir le code avec l'enregistreur de macro, puis de l'adapter ?
    Par ex. pour un filtre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveSheet.PivotTables("nom TCD").PivotFields("nom champ").PivotFilters.Add2 _
            Type:=xlValueEquals, DataField:=ActiveSheet.PivotTables("Dnom TCD"). _
            PivotFields("nom champ pour filtre"), Value1:=1

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

Discussions similaires

  1. Modifier Filtre TCD par VBA Excel 2010
    Par maxwellou dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 05/06/2014, 12h20
  2. TCD sous VBA
    Par Rob's dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2013, 20h24
  3. [XL-2007] TCD sous VBA
    Par TRESOALEX dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/10/2012, 12h58
  4. [XL-2010] Recuperation de la valeur d'un filtre TCD en VBA
    Par lcolombain dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/02/2012, 09h07
  5. TCD sous VBA
    Par davyvba dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/06/2008, 16h38

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