Bonjour,
J'ai un gros beug sur la modification d'une source d'un TCD voici mon code :
'MODIFICATION LIEN TCD
For Each feuille In ActiveWorkbook.Sheets
Sheets(feuille.Name).Activate
For Each Pvt In ActiveSheet.PivotTables
'Définit le premier TCD de la feuille active
'Set Pvt = ActiveSheet.PivotTables(0) 'A REVOIR POUR BOUCLE SUR TOUS LES TCD
'Extrait le nom de la feuille
NomFeuille = Left(Pvt.SourceData, InStr(1, Pvt.SourceData, "!") - 1)
'Pour gérer la version française d'Excel et remplacer le format xlL1C1 en xlR1C1.
Cible = Mid(Pvt.SourceData, Len(NomFeuille) + 2)
source = NomFeuille & "!" & Replace(Application.ConvertFormula( _
Formula:=Cible, fromReferenceStyle:=xlR1C1, toReferenceStyle:=xlA1, toAbsolute:=xlAbsolute), "[" & ThisWorkbook.Name & "]", "")
'compte les caracteres jusqu'au "."
nombre = InStr(source, ".xls")
'lit les caractere jusqu'au nombre trouver juste au dessus
nom = Left(source, nombre)
'inverse les caracteres
nominv = StrReverse(source)
'compte jusqu'au "!"
nombre1 = InStr(nominv, "!")
nominv1 = Left(nominv, nombre1)
'réinverse les cactere
nom1 = StrReverse(nominv1)
'garde le nom du tableau sélectionner auparavant pour changer son lien en-dessous
NomTCD = Pvt.Name
ActiveSheet.PivotTables(NomTCD).ChangePivotCache _
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=nom & "xlsm'" & nom1, Version:=xlPivotTableVersion12)
ActiveWindow.SmallScroll Down:=-21
Next Pvt
Next feuille
Quand je l'exécute a partir de mon classeur, ca fonctionne parfaitement. Mais quand je l'exécute d'un autre classeur j'ai une erreur au niveau de la modification de la source, l'erreur est " Tableau croisé dynamique impossible à modifier en mode modification des données." Je ne comprend pas du tout ce qu'il ce passe. Je ne vois pas où est l'erreur.
Adez moi svp.