Quiet lunch hour and some lucky breaks. I think this will get what you want.
First the event that triggers off a change in Cell B1 on Sheet 4.
CODE
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub
SetFilters
End Sub
Then get information from the first pivot table and loop through the pivot tables on Sheet 4 and set the filters
CODE
Option Explicit
Option Base 1
Sub SetFilters()
Dim pt As PivotTable, pf As PivotField, pi As PivotItem
Dim SurveyName() As String, SurveyVisible() As Boolean
Dim kPI As Long, nPI As Long
Dim shRpt As Excel.Worksheet
Set shRpt = Sheets("Sheet4") ' Change this for the final report.
Set pt = shRpt.PivotTables("Helpful") ' Change this if baseline pivot table is something else
Set pf = pt.PivotFields("Survey_Name")
nPI = pf.PivotItems.Count
ReDim SurveyName(nPI)
ReDim SurveyVisible(nPI)
kPI = 1
For Each pi In pf.PivotItems
SurveyName(kPI) = pi.Name
SurveyVisible(kPI) = pi.Visible
kPI = kPI + 1
Next
For Each pt In shRpt.PivotTables
If pt.Name <> "Helpful" Then ' Skip over the base pivot table to keep from retriggering macro
pt.PivotFields("Survey_Name").CurrentPage = "(All)"
For kPI = 1 To nPI
'MsgBox pt.Name & ": " & SurveyName(kPI) & " = " & SurveyVisible(kPI)
pt.PivotFields("Survey_Name").PivotItems(SurveyName(kPI)).Visible = _
SurveyVisible(kPI)
Next
End If
Next
End Sub
I did one thing to your sample file. I eliminated all lines below row 30. I was picking up some stray data there. I also made a table out of it and made that the source of the pivot table, but carried it out inconsistently. It doesn't really matter as long as you have the same valid range feeding the pivot table.
There are a couple of caveats with this code. If you change the sheet name, you will have to change the code where indicated. Your first pivot table is named "Helpful." I use this pivot table to get the filter information. If the name changes, there are two places in the code where it must be changed.
I frequently use code similar to my first example where only one selection is needed. I have not, up until now, needed to update multiple pivot tables with multiple selections. I think it's only a matter of time before I will need this capability myself.