Pour tous ceux et celles qui cherchent encore, ce code n'est peut être pas le plus ergonomique mais il fonctionne :
Remplacer "tableau source" par le nom de la feuille ou se trouve votre tableau ou source de données
Remplacer FEUIL1, 2 et 3 par le nom des feuilles ou se trouvent vos TCDs
MISE A JOUR TCDs SUR PLUSIEURS FEUILLES PROTEGEES
1 code dans ThisWorkbook
1 code dans un module
‘ThisWorkbook
Option Explicit
Private Sub Workbook_Open()
RefreshPivotTables
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
If Sh.Name = "TABLEAU_SOURCE" Then RefreshPivotTables
End Sub
Module
Option Explicit
Public Sub RefreshPivotTables()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Select Case ws.Name
Case "FEUIL1", "FEUIL2", "FEUIL3":
ws.Unprotect
Case Else:
End Select
Next ws
ActiveWorkbook.Worksheets("TABLEAU_SOURCE").PivotTables(1).RefreshTable
For Each ws In ActiveWorkbook.Worksheets
Select Case ws.Name
Case "FEUIL1", "FEUIL2", "FEUIL3":
ws.Protect
Case Else:
End Select
Next ws
End Sub