Tableau en VBA avec filtre

Bonjour à tous ,

Je dois faire un TCD en VBA avec un filtre activé. Le filtre doit prendre la valeur d'une case.

Mais je n'arrive pas à faire en sorte que le filtre prenne la valeur da la case.

Je joins un fichier en exemple , dans ce fichier le filtre secteur doit prendre la valeur de la case G1 tout seul.

Pour l'instant le programme est le suivant :

Sub TEST()
'
' TEST Macro
'

'
    Application.Goto Reference:="Tableau1"
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Tableau1", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Feuil1!R9C8", TableName:="Tableau croisé dynamique2", _
        DefaultVersion:=xlPivotTableVersion14
    Sheets("Feuil1").Select
    Cells(9, 8).Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Prix")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique2").PivotFields("Prix"), "Somme de Prix", _
        xlSum
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Secteur" _
        )
        .Orientation = xlPageField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Lieux")
        .Orientation = xlRowField
        .Position = 1
    End With
End Sub

Merci et bonne journée

90610-test.xlsx (12.69 Ko)

Bonjour

je procède comme suit:

au début de la procédure

variable qui récupère la valeur de G1

vfil = Range("G1").Value

après création du filtre

ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Secteur"). _

CurrentPage = vfil

A adapter et tester

Cordialement

FINDRH

Sub TEST()
'
' TEST Macro
vfil = Range("G1").Value

   Application.Goto Reference:="Tableau1"
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "Tableau1", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Feuil1!R9C8", TableName:="Tableau croisé dynamique2", _
        DefaultVersion:=xlPivotTableVersion14
    Sheets("Feuil1").Select
    Cells(9, 8).Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Prix")
        .Orientation = xlRowField
        .Position = 1
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique2").PivotFields("Prix"), "Somme de Prix", _
        xlSum
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Secteur" _
        )
        .Orientation = xlPageField
        .Position = 1

    End With

ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Secteur"). _
CurrentPage = vfil

    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Lieux")
        .Orientation = xlRowField
        .Position = 1
    End With
End Sub

Bonjour et merci de ton aide.

J'ai essayé ta méthode mais je n'y arrive pas. Est ce que j'ai bien placé tes lignes de programme ( j'ai aussi essayé d'ajouter des with et des End With à la fin de tes lignes ( ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Secteur"). _

CurrentPage = vfil ) mais ça ne marche pas.

EDIT: Merci beaucoup j'ai réussi à le faire marché y avait une erreur dans le nom du tableau

Bonne journée

Rechercher des sujets similaires à "tableau vba filtre"