Bonjour
j'ai une presentation PPT qui comporte une cinquantaine de slides avec des tableaux excel intégrés avec des liens.
ces liens changent tous les mois. jusque là le changement des liens se fait manuellement et le code ci dessous est permet la mise à jour des liens excel et fonctionne correctement une fois tous les liens modifiés.
mais l'idée c'est de pouvoir changer automatiquement tous les 50 liens parce que les copier coller avec les liens c'est vraiement fastidieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub mise_a_jour() Dim Forme As Shape Dim sld As Slide For Each sld In ActivePresentation.Slides For Each Forme In sld.Shapes If Forme.Type = msoLinkedOLEObject Then Forme.LinkFormat.Update End If Next Next End Sub
j'ai adapter le code ci dessous pour un lien pour le changement de lien mais je ne comprends pas pour quoi il ne marche pas , ya pas de message d'erreur et le resultat est indifférent
en fait les 50 liens sont dans 6 classeurs différents là j'ait le test avec un seul classeur dans le code ci dessous et ça ne cchange pas le lien
ce code est supposé changer le lien et faire la mise à jour mais rien ne se passe , je ne comprends pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub UpdateLinks2() Dim oldPath As String, newPath As String Dim pptPres As Presentation, pptSlide As Slide, pptShape As Shape newPath = "U:\REPORTING\ partie P&L 07 2015.xlsx" oldPath = "U:\REPORTING\partie P&L 06 2015.xlsx" 'loop on each slides, and on each shapes Set pptPres = ActivePresentation For Each pptSlide In pptPres.Slides For Each pptShape In pptSlide.Shapes If pptShape.Type = msoLinkedOLEObject Then 'if it is a "linked object" then If pptShape.LinkFormat.SourceFullName = oldPath Then pptShape.LinkFormat.SourceFullName = newPath 'modify the link pptShape.LinkFormat.Update 'update the link End If End If Next pptShape Next pptSlide End Sub
quelqu'un a t il une idée ?
Partager