[vba]

Private Sub Worksheet_Change(ByVal Target As Range)
Const WS_RANGE As String = "E1" '<== change to suit

On Error GoTo ws_exit
Application.EnableEvents = False

If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then

With Me.PivotTables("PivotTable1")

.SourceData = Range(Target.Value).Address(, , xlR1C1, True)
.Refresh
End With
End If

ws_exit:
Application.EnableEvents = True
End Sub
[/vba]

This is worksheet event code, which means that it needs to be
placed in the appropriate worksheet code module, not a standard
code module. To do this, right-click on the sheet tab, select
the View Code option from the menu, and paste the code in.