Sub filtra_pivot()
Dim wb As Workbook
Dim ws As Worksheet
Dim oPvTbl As PivotTable
Dim oPvFld As PivotField
Dim oPvItm As PivotItem
Dim blnCampo As Boolean
Dim sCampo As String
sCampo = Range("d4") ''QUI SELEZIONARE IL CAMPO UNIVOCO, TRAMITE UNA CELLA, COMBOBOX O USERFORM.
Set wb = ActiveWorkbook
Set ws = wb.ActiveSheet
On Error Resume Next
For Each ws In wb.Worksheets
For Each oPvTbl In ws.PivotTables
For Each oPvFld In oPvTbl.PivotFields
For Each oPvItm In oPvFld.PivotItems
If oPvItm.Name = sCampo Then
blnCampo = 1
Exit For
End If
Next oPvItm
If blnCampo = True Then
For Each oPvItm In oPvFld.PivotItems
If oPvItm.Name <> sCampo Then
oPvItm.Visible = 0
End If
Next oPvItm
blnCampo = 0
End If
Next oPvFld
Next oPvTbl
Next ws
Set ws = Nothing
Set wb = Nothing
End Sub
|