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 SubMerci et bonne journée
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 SubBonjour 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