Appliquer un filtre TCD par VBA [Fermé]

Signaler
Messages postés
562
Date d'inscription
mercredi 18 janvier 2012
Statut
Membre
Dernière intervention
26 mai 2015
-
Messages postés
15804
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
9 juin 2021
-
Bonjour,

J'ai chercher sur pas mal de sites mais rien à faire je ne trouve pas ce que je veux alors je me tourne vers vous.

Voilà mon souci j'ai un tableau croisé dynamique sous excel 2010 et j'aimerai pouvoir appliquer un filtre sur un segment par VBA.

J'ai placé une zone de recherche et un bouton ok et le but serai que quand je clique sur le bouton, un filtre se mette en place ayant pour valeur ce qui a été tapé dans la zone de texte (TextBox1). Voici un exemple du code que j'ai essayé mais qui ne marche pas...

Public Sub FilterPivotTable()

ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Localisation").PivotFilter = TextBox1.Value

End Sub

A voir également:

3 réponses

Messages postés
562
Date d'inscription
mercredi 18 janvier 2012
Statut
Membre
Dernière intervention
26 mai 2015
78
up
Messages postés
15804
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
9 juin 2021
1 501
Bonjour,

Public Sub FilterPivotTable()

Sheets("feuil4").Activate

With ActiveSheet
.PivotTables("Tableau croisé dynamique1").PivotFields("Localisation").ClearAllFilters
.PivotTables("Tableau croisé dynamique1").PivotFields("Localisation").PivotFilters.Add _
Type:=xlCaptionEquals, Value1:="AAAA"
End With

End Sub

Remplacez "AAAA" par nom_de_la_feuille.TextBox1.Value ou
nom_de_userform.TextBox1.Value ou
suivant l'endroit ou vous lancez ce code, il faudra peut-etre passer par une variable Public:

ex:
dans un module
dim Ma_Valeur

et
Ma_Valeur=TextBox1.Value la ou est la textbox

A suivre
Messages postés
562
Date d'inscription
mercredi 18 janvier 2012
Statut
Membre
Dernière intervention
26 mai 2015
78
Bonjour,
Tout d'abord merci de répondre à ma question.
Je lance le code depuis la feuille où se trouve le TCD.

J'ai inscrit le code mais il me met objet requis pour cette ligne-ci :
.PivotTables("Tableau croisé dynamique1").PivotFields("Localisation").PivotFilters.Add _
Type:=xlCaptionEquals, Value1:=Recherche.Test.Value
Messages postés
15804
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
9 juin 2021
1 501
Re,

.PivotTables("Tableau croisé dynamique1").PivotFields("Localisation").PivotFilters.Add _
Type:=xlCaptionEquals, Value1:=Recherche.Test.Value



Si votre feuille s'appelle: Recherche

.PivotTables("Tableau croisé
dynamique1").PivotFields("Localisation").PivotFilters.Add _
Type:=xlCaptionEquals, Value1:=worksheets("Recherche").Test.Value

ou

.PivotTables("Tableau croisé
dynamique1").PivotFields("Localisation").PivotFilters.Add _
Type:=xlCaptionEquals, Value1:=Test.Value

puisque le code est sur la meme feuille

Bonne suite
Messages postés
15804
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
9 juin 2021
1 501
Re,
Cela correspond a quoi? ce que vous avez dans TB_Rec ou ?
Messages postés
562
Date d'inscription
mercredi 18 janvier 2012
Statut
Membre
Dernière intervention
26 mai 2015
78
Type:=xlCaptionEquals, DataField:=Localisation, Value1:=Worksheets("Recherche").TB_Rec.Value

Pour Type:=xlCaptionEquals j'ai xlCaptionEquals=15
DataField:=Localisation J'ai Localisation=vide
et pour Value1:=Worksheets("Recherche").TB_Rec.Value Je n'ai rien qui s'affiche.
Messages postés
15804
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
9 juin 2021
1 501
Re,
qu'aviez vous entre dans TB_Rec???????????????????????????????????????
Messages postés
562
Date d'inscription
mercredi 18 janvier 2012
Statut
Membre
Dernière intervention
26 mai 2015
78
Mairie par exemple
Messages postés
15804
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
9 juin 2021
1 501
Bonjour,
Serait-il possible de mettre votre fichier a disposition sur:

https://www.cjoint.com/

merci