Erreur 400 dans macro d'actualisation des TCdyn

Bonsoir à tous,

Je requiers de l'aide sur un problème que je ne parviens pas à résoudre...

Mon projet : actualiser tous les tableaux croisés dynamiques d'un classeur => Il y en 5 par feuille sachant que mon classeur peut en contenir jusqu'à 30! (Une par collaborateur)

Mon problème : la macro dont vous trouverez le code ci-dessous (et dont je ne suis évidemment pas l'auteur...) ne fonctionne plus lorsque j'ai crée plusieurs copies de ma feuille "originale". Un message d'erreur 400 s'affiche quand je clique sur le bouton et un message 1004 quand je lance la macro depuis la page de code.

Bien que j'ai pris le temps de lire les fils de discussion en lien avec mon problème, je ne parviens pas à le résoudre car je suis trop novice.

Je vous remercie par avance de l'attention que vous accorderez à mon problème.

Sub AdjustAllPivotDataRanges()
'PURPOSE: Dynamically change every pivot table's data source range in the workbook
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault

ActiveSheet.Unprotect Password:="xxxx"

Dim sht As Worksheet
Dim pvt As PivotTable
Dim StartPoint As Range
Dim rng As Range
Dim SourceAddress As String

'Enter Worksheet Name that holds your Pivot data source
  Set sht = ActiveWorkbook.Worksheets("BDD")

'Enter first cell in your Pivot data source
  Set StartPoint = sht.Range("A1")

'Create SourceData address
  Set rng = sht.Range(StartPoint, StartPoint.SpecialCells(xlLastCell))
  SourceAddress = sht.Name & "!" & rng.Address(ReferenceStyle:=xlR1C1)

'Loop through and update pivot tables with new data source range
  For Each sht In ThisWorkbook.Worksheets
    For Each pvt In sht.PivotTables

      'Change Pivot Table's data source range address
        pvt.ChangePivotCache _
          ThisWorkbook.PivotCaches.Create( _
          SourceType:=xlDatabase, _
          SourceData:=SourceAddress)

      'Ensure Pivot Table is refreshed
        pvt.RefreshTable

    Next pvt
  Next sht

'Completion Message
  MsgBox "Tous les tableaux du classeur ont été actualisés", vbInformation

  ActiveSheet.Protect Password:="xxxx", Contents:=True, UserInterfaceOnly:=True, AllowUsingPivotTables:=True, AllowFiltering:=True, AllowSorting:=True

End Sub

Rebonsoir,

Après quelques recherches sur le net, je pense avoir résolu mon problème en procédant autrement pour actualiser les tableaux. Mes multiples tests avec le nouveau code n'ont pas généré de bug jusqu'ici...

ancienne version : pvt.RefreshTable

nouvelle version : ActiveWorkbook.RefreshAll

Merci à ceux qui ont jeté un coup d'oeil...même si je ne vous pas laissé le temps de me donner une réponse!

Puisque nous sommes sous le signe de l'entraide, voici le site sur lequel j'ai trouvé ma solution :

http://www.thespreadsheetguru.com/blog/2014/9/27/vba-guide-excel-pivot-tables (en anglais uniquement)

Eric

Rechercher des sujets similaires à "erreur 400 macro actualisation tcdyn"