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 :

Modifier Filtre TCD par VBA Excel 2010


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 6
    Par défaut Modifier Filtre TCD par VBA Excel 2010
    Bonjour,

    J'aimerai modifier le filtre de plusieurs TCD par une seule action (via VBA ?)

    Mon fichier se compose de 4 TCD, et chacune est construit avec un filtre, ce dernier est le même pour les 4 TCD. Ainsi, j'aimerai qu'après avoir modifier le filtre du 1er TCD les 3 autres filtres se modifient aussi.

    Mon idée, est copier dans une cellule précise (A1) la donnée du 1er filtre , puis à partir du code ci-dessous, tous les autres TCD devraient aussi se modifier automatiquement.

    Mais ce code ne fonctionne pas.

    Peut-être existe des solutions plus facile via un userform mais je ne suis pas assez calé en vba pour arriver à faire ça.

    Pourriez-vous m'aider à trouver une solution svp ?

    Ci-joint un fichier EXCEL 2010 pour illustrer mes propose.

    Merci de votre aide


    Code essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address <> "$A$1" Then Exit Sub
        Dim Sh As Worksheet, Pt As PivotTable
        For Each Sh In Worksheets
            For Each Pt In Sh.PivotTables
                With Pt.PivotFields("Noms")
                    .ClearAllFilters
                    .CurrentPage = Target.Value
                End With
            Next Pt
        Next Sh
    End Sub

    Cdt
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Bonjour,
    pour ton exemple:

    Tu renommes tes TCD comme ceci:

    Le premier en haut celui qui ne doit pas bouger : TCD_1
    ensuite en descendant : TCD_2, TCD_3, TCD_4

    ainsi on identifie les TCD donc si j'ai compris, ce sont les TCD_2 à TCD_4 qui changent

    donc dans le code on boucle sur la collections de TCD du classeur, si le TCD à un nom différent de TCD_1 alors on applique le changement
    en affectant comme critère la valeur de la cellule A1.

    voici le code:

    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Pt As PivotTable
     
    If Target.Address <> "$A$1" Then Exit Sub
     
     
        For Each Pt In PivotTables
     
            If Pt.Name <> "TCD_1" Then
     
            With Pt.PivotFields("Num")
                .ClearAllFilters
                .CurrentPage = Target.Value
            End With
     
            End If
        Next Pt
     
     
    End Sub

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 6
    Par défaut
    Merci beaucoup pour ton aide !

    J'ai juste un souci qui me rends dingue... je n'arrive pas à éxécuter la macro ! Voici la copie d'écran de ce qu'il se passe quand je met en lecture le code.


    Pourrais tu m'aider à renommer le modul stp...c'est super énnervant de ne pas y arriver !

    merci encore
    Fichiers attachés Fichiers attachés

  4. #4
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    il ne faut pas mettre ce code dans un module,
    mais directement dans la feuille TCD's

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 6
    Par défaut
    C'est ce que je fais...pourtant quand j'execute, le panneau "macro" s'affiche avec aucune macro dedans.

    c'est le (byval...) qui me pose problème ! La macro ne s'execute pas, donc je ne sais même pas si le code est fonctionnel ou non...grrr c'est dingue, j'ai l'impression d'être vraiment très bête !

  6. #6
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    il ne faut pas l'éxécuter:

    l'éxécution ce fait lorsque tu introduis dans la cellule A1 de la feuille TCD's une nouvelle donnée et que tu valides le changement.

    si tu as un soucis je te mettrais le fichier en pièce jointe...

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

Discussions similaires

  1. [XL-2007] Filtre imposé sur TCD par VBA
    Par meolimo dans le forum Excel
    Réponses: 0
    Dernier message: 23/02/2014, 20h05
  2. VBA Excel 2010 : RechercheV et Filtre
    Par toto92 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/03/2013, 10h16
  3. Manipuler les Shapes par VBA Excel.
    Par Karimbon dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 29/10/2007, 18h37
  4. Changer la largeur de colonnes par vba (excel 97)
    Par jneron dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/09/2007, 11h14
  5. Création de label par VBA (excel)
    Par WagaSeb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/10/2006, 14h46

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