Je suis actuellement en utilisant ce code pour mettre à jour tous les liens dans ma présentation powerpoint:boucle à travers des graphiques sur selectionnés (ou gamme de) diapositives PowerPoint
Sub UpdateLinks()
Dim ExcelFile
Dim exl As Object
Set exl = CreateObject("Excel.Application")
ExcelFile = "C:\Users\J\Documents\Reporting\Governance Physical Charts.xlsm"
Dim i As Integer
Dim k As Integer
'Go through every slide
For i = 1 To ActivePresentation.Slides.Count
With ActivePresentation.Slides(i)
'Go through every shape on every slide
For k = 1 To .Shapes.Count
On Error Resume Next
'Set the source to be the same as teh file chosen in the opening dialog box
.Shapes(k).LinkFormat.SourceFullName = ExcelFile
If .Shapes(k).LinkFormat.SourceFullName = ExcelFile Then
'If the change was successful then also set it to update automatically
.Shapes(k).LinkFormat.AutoUpdate = ppUpdateOptionAutomatic 'other option is ppUpdateOptionManual
End If
Next k
End With
Next i
End Sub
Au lieu de mettre à jour le lien de chaque tableau dans la présentation, est Est-il possible d'avoir ce code en boucle seulement dans les diapositives sélectionnées? Ou si c'est plus facile - est-il possible de définir une plage? Par exemple, uniquement mettre à jour les graphiques sur les diapositives 15-30?
Merci!
EDIT: Résolution fournie dans les commentaires - voici mon code révisé
Sub UpdateLinks()
Dim ExcelFile
Dim exl As Object
Set exl = CreateObject("Excel.Application")
Dim sld As Slide
ExcelFile = "C:\Users\J\Documents\Reporting\Governance Physical Charts.xlsm"
Dim i As Integer
Dim shp As Shape
For Each sld In ActivePresentation.Slides.Range(Array(11, 12, 13, 14, 15, 16, 17, 18))
For Each shp In sld.Shapes
On Error Resume Next
shp.LinkFormat.SourceFullName = ExcelFile
If shp.LinkFormat.SourceFullName = ExcelFile Then
shp.LinkFormat.AutoUpdate = ppUpdateOptionAutomatic 'other option is ppUpdateOptionManual
End If
Next shp
Next
End Sub
Merci @ A.S.H - cela a fonctionné! Affichage de mon code révisé en édition – jennaisavol
@jennaisavol Voulez-vous marquer la question comme étant répondue (en cliquant sur la coche au-dessus de la réponse)? –