Bonjour le forum,
Voici pour tous ceux et celles qui cherchent encore et qui attendent impatiemment qu'on leur donne la solution de façon claire et limpide, 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 protégées 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