Thema Datum  Von Nutzer Rating
Antwort
Rot Pfadänderung von in Powerpoint verknüpften Tabellen- und Grafiken mittels VBA
09.05.2017 08:18:58 Matthias
NotSolved
09.05.2017 14:14:56 Matthias
Solved

Ansicht des Beitrags:
Von:
Matthias
Datum:
09.05.2017 08:18:58
Views:
977
Rating: Antwort:
  Ja
Thema:
Pfadänderung von in Powerpoint verknüpften Tabellen- und Grafiken mittels VBA

Ausgangslage:

Für eine Ergebnispräsentation habe ich sowohl Grafiken als auch Excel-Tabellen in eine Powerpoint-Präsentation verknüpft. Diese Präsentation muss bei Vorliegen von neuen/geänderten Daten aktualisiert werden, wobei die Grafiken und Tabellen mit der neuen Datengrundlage in einem anderen Ordner abgelegt sind (bspw. C:\newFolder\), als die ursprünglich verknüpften (bspw. C:\oldFolder\).

Mein Ziel ist es mittels VBA die Dateipfade der verknüpften Tabellen und Grafiken in einem Rutsch anzupassen, da Powerpoint 2010 hierfür scheinbar keine unter zeitlichen Gesichtspunkten vertretbare Lösungsmöglichkeit anbietet.

 

Lösungsansatz:

Bei meiner Recherche bin ich auf folgenden Lösungsansatz gestoßen, der vom Grundsatz her für meine Problemstellung geeignet erscheint:

Sub ChangeOLELinks()
' Note: this will only work in PPT 2000 and later

    Dim oSld As Slide
    Dim oSh As Shape
    Dim sOldPath As String
    Dim sNewPath As String

    ' EDIT THIS TO REFLECT THE PATHS YOU WANT TO CHANGE
    ' Include just the portion of the path you want to change
    ' For example, to change links to reflect that files have moved from
    ' C:\oldFolder\*.* to
    ' C:\newFolder\*.*
    sOldPath = "C:\oldFolder\"
    sNewPath = "C:\newFolder\"

    On Error GoTo ErrorHandler

    For Each oSld In ActivePresentation.Slides
        For Each oSh In oSld.Shapes
            ' Change only linked OLE objects
            If oSh.Type = msoLinkedOLEObject Then
                On Error Resume Next
                ' Verify that file exists
                If Len(Dir$(Replace(oSh.LinkFormat.SourceFullName, sOldPath, sNewPath))) > 0 Then
                     oSh.LinkFormat.SourceFullName = Replace(oSh.LinkFormat.SourceFullName, sOldPath, sNewPath)
                Else
                      MsgBox("File is missing; cannot relink to a file that isn't present")
                End If
                On Error GoTo ErrorHandler
             End If
        Next    ' shape
    Next    ' slide

    MsgBox("Done!")

NormalExit:
    Exit Sub
ErrorHandler:
    MsgBox("Error " & err.number & vbcrlf & err.description)
    Resume NormalExit

End Sub

 

Nach Durchlauf des o.g. Makros, ist die Präsentation anschließend zu speichern und zu schließend. Nach erneutem Öffnen und einer Aktualisierung der Verknüpfungen werden die Tabellen und Grafiken mit den neunen/geänderten Werten aus dem "newFolder" angezeigt.

 

Offene Problemstellung:

Der oben gezeigte Ansatz funktioniert leider nicht, wenn die Zellbereiche der verknüpften Tabellen in Excel mit einem Namen versehen wurden. Für meine Zwecke benötige ich ein Makro, dass zusätzlich auch mit benannten Zellbereichen umgehen kann. Bei der aktuellen Umsetzung wird in diesem Fall die Fehlermeldung "File is missing; cannot relink to a file that isn't present" ausgegeben. Da ich selbst ein VBA-Neuling bin, bin ich mich für entsprechende Anpassungsvorschläge dankbar.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Pfadänderung von in Powerpoint verknüpften Tabellen- und Grafiken mittels VBA
09.05.2017 08:18:58 Matthias
NotSolved
09.05.2017 14:14:56 Matthias
Solved