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 :

filtre variable sur TCD


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Par défaut filtre variable sur TCD
    Donc me revoila,

    j'avais déjà posté un problème concernant les filtres sur un TCD, cela avait été résolu mais en fait je me suis rendu compte que ça ne faisais pas vraiment ce que je voulais.

    Donc la finalité c'est que je puisse filtrer mon TCD uniquement avec deux variables et ne pas voir le reste.

    Je vous met mon code pour y voir un peu plus clair (le problème est vers la fin) :

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    sheets("TCD_EVO").Select
    sheets("TCD_EVO").Cells.Clear 'Efface les cellules
     
            ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
            "Feuil1!" & sheets("Feuil1").Range("A1").CurrentRegion.Address).CreatePivotTable TableDestination:= _
            "'[Projet1.2.xlsm]TCD_EVO'!R1C42", TableName:="Tableau croisé dynamique1"
            sheets("TCD_EVO").Select
        Cells(1, 42).Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Dates")
            .Orientation = xlRowField
            .Position = 1
        End With
        With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Thèmes")
            .Orientation = xlPageField
            .Position = 1
        End With
        ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
            PivotTables("Tableau croisé dynamique1").PivotFields("Réponses"), _
            "Nombre de Réponses", xlCount
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Thèmes"). _
            ClearAllFilters
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Thèmes"). _
            CurrentPage = "QUALITE"
         Columns("AP:AP").Select
        Selection.NumberFormat = "m/d/yyyy"
     
    If sheets("TCD_EVO").Range("AP7") = "" Then
    sheets("TCD_EVO").Cells.Clear
    sheets("Accueil").Select
    MsgBox "l'affichage de l'évolution n'est pas possible car un seul audit réalisé."
    Exit Sub
    Else
     
    Dim a As String
    Dim b As String
     
    a = Range("AP65536").End(xlUp).Offset(-1, 0).Text
    b = Range("AP65536").End(xlUp).Offset(-2, 0).Text
    MsgBox a
    MsgBox b
     
    sheets("TCD_EVO").Select
    'sheets("TCD_EVO").Cells.Clear 'Efface les cellules
     
            ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
            "Feuil1!" & sheets("Feuil1").Range("A1").CurrentRegion.Address).CreatePivotTable TableDestination:= _
            "'[Projet1.2.xlsm]TCD_EVO'!R1C1", TableName:="Tableau croisé dynamique2"
            sheets("TCD_EVO").Select
            Cells(1, 1).Select
            With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Thèmes")
                .Orientation = xlPageField
                .Position = 1
            End With
            With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
                "Domaines")
                .Orientation = xlColumnField
                .Position = 1
            End With
            With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Dates")
                .Orientation = xlRowField
                .Position = 1
            End With
                ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
                PivotTables("Tableau croisé dynamique2").PivotFields("Réponses"), _
                "Somme de Réponses", xlSum
                ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Thèmes"). _
                CurrentPage = "QUALITE"
            With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Dates")
     
     
    'c'est ici qu'est le problème, il m'affiche aussi les autres lignes qu'il trouve
    'alors que je voudrais uniquement les lignes qui correspondent à ces deux 
    'variables
     
     
                    .PivotItems(a).Visible = True
                    .PivotItems(b).Visible = True
            End With
            Range("A5").Select
            With ActiveSheet.PivotTables("Tableau croisé dynamique2")
                .ColumnGrand = False
                .RowGrand = False
            End With
            Call CopieColleTDBQ
    End If
    Flo

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Par défaut, je crois que les éléments du champ sont tous visibles, sauf ceux qui n'auraient pas de données.
    Je pense que tu vas devoir masquer les autres, ce qui pose parfois des problèmes : on ne peut pas masquer et démasquer des éléments dans n'importe quel ordre. Mais en partant de tous visibles, tu dois pouvoir masquer ceux que tu ne veux pas voir.

    Cordialement,

    PGZ

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Par défaut
    oui tout à fait, on ne peut pas lui dire de tout enlever. Finalement j'ai trouvé une solution qui marchouille plus ou moins (enfin jusqu'au prochain problème que j'avais pas vu).

    Cordialement,

    Flo

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Si tu as des dates tu peux essayer ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim a As String, b As String
     
    With Sheets("Accueil")
       a = .Cells(.Rows.Count, "AP").End(xlUp).Offset(-2, 0).Text
       b = .Cells(.Rows.Count, "AP").End(xlUp).Offset(-1, 0).Text
    End With
    With Sheets("TCD_EVO").PivotTables("Tableau croisé dynamique2").PivotFields("Dates")
       .ClearLabelFilters
       .PivotFilters.Add Type:=xlDateBetween, Value1:=a, Value2:=b
    End With

+ 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. [XL-2003] Filtre dynamique sur TCD
    Par aminnio dans le forum Excel
    Réponses: 0
    Dernier message: 03/07/2013, 17h53
  3. [XL-2003] Filtre sur TCD
    Par nawakbling dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/11/2011, 11h01
  4. [XL-2010] Filtre multiple sur Label TCD
    Par lafafmentvotre dans le forum Excel
    Réponses: 0
    Dernier message: 04/03/2011, 15h35
  5. Probleme Filtre automatique sur une plange variable
    Par Lucorah dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2010, 10h23

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