Для этого в Excel VBA есть необычное встроенное событие. На листе сводной таблицы выберите событие PivotTableUpdate
( Документация по событиям ):
Поскольку, возможно, на листе будет более 1 сводной таблицы, рекомендуется проверить, какая из них обновлена, используя ее имя:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Select Case Target.Name
Case "PivotTable2"
Debug.Print "Write date somewhere "; Format(Now, "DD-MM-YYYY")
Case Else
Debug.Print "Not PivotTable2"
End Select
End Sub
«DateStamp» получается через Format(Now, "DD-MM-YYYY")
и печатается в ближайшем окне ( Ctrl + G ). Вместо того, чтобы печатать там, можно записать его на сервер или на отдельный лист, получив последнюю ячейку строки , например:
Case "PivotTable2"
Worksheets(2).Cells(lastCell, 1) = Format(Now, "DD-MM-YYYY")