VBA changement de source automatique ppt/excel

lukill

XLDnaute Nouveau
Bonjour !

je viens vous demander de l'aide sur un problème que j'ai du mal à résoudre du fait de mon niveau débutant en VBA.

J'ai un fichier ppt dans lequel j'ai copié plusieurs graphiques et cellules en fichier lié à partir d'un seul et même fichier excel.

Si je déplace mes fichiers vers un autre ordianteur, je dois modifier toutes les sources des graphiques et cellules. J'ai trouvé ce code sur le forum et il fonctionne parfaitement pour les graphiques :

PHP:
Sub ChangerLiaisonsOLElinked()
 
'### Constante à adapter (nouveau chemin et/ou nouveau nom du classeur source) ###
 Const NEW_PATH As String = "c:\1111base PPT.xls"
 '#################################################################################
 
Dim SL As Slide
 Dim SH As Shape
 Dim LF As LinkFormat
 Dim A$
 Dim PathLink$
 Dim ClasseurSource$
 Dim OleObjectRefer$
 Dim NewClasseur$
 '---
 For Each SL In ActivePresentation.Slides
   For Each SH In SL.Shapes
     If SH.Type = msoLinkedOLEObject Then
       Set LF = SH.LinkFormat
       '--- Source actuelle ---
       A$ = LF.SourceFullName
         '°°° Le chemin du classeur source °°°
       PathLink$ = Mid(A$, 1, InStr(1, A$, "!") - 1)
         '°°° Le classeur source °°°
       If InStr(1, A$, "[") > 0 Then
         ClasseurSource$ = Mid(A$, InStr(1, A$, "[") + 1)
         ClasseurSource$ = Mid(ClasseurSource$, 1, InStr(1, ClasseurSource$, "]") - 1)
       End If
         '°°° L'objet source (graphique, tableau, ...) °°°
       OleObjectRefer$ = Mid(A$, Len(PathLink$) + 1)
       '--- Nouvelle source (classeur source et objet source) ---
       If InStr(1, A$, "[") > 0 Then
         NewClasseur$ = Mid(NEW_PATH, InStrRev(NEW_PATH, "\") + 1)
         OleObjectRefer$ = Replace(OleObjectRefer$, ClasseurSource$, NewClasseur$)
       End If
       LF.SourceFullName = NEW_PATH & OleObjectRefer$
       LF.Update
     End If
   Next SH
 Next SL
 End Sub

Par contre il ne prend pas en compte les sources qui font référence à des cellules,

Sauriez-vous m'indiquer quelle ligne ajouter à ce code ?

Merci beaucoup pour vos réponses !!
 

Discussions similaires

Statistiques des forums

Discussions
312 553
Messages
2 089 532
Membres
104 205
dernier inscrit
mehaya63