im Forumsarchiv (15.12.2006) hab ich schon eine für mich zutreffenden Artikel gefunden mit der für mich entscheidenden Antwort von Franz (diese und der entsprechende Link sind am Ende aufgeführt). Jedoch brauche ich noch ein wenig mehr Hilfe.
Ich habe in Powerpoint 2007 bis zu 200 Verknüpfungen zu Excel Diagrammen. Nun möchte ich über ein Makro die Verknüpfungspfade umbennen, um in der Lage zu sein ohne größeren Aufwand die Exceldatei entweder umzubennen, oder vielmehr in Ordnerverzeichnissen hin und her zu bewegen.
Die Anweisung aus dem Forumsarchiv läuft auch bei mir problemlos durch, jedoch ist dies händisch bei über 100 Verknüpfungen nicht mehr zu bewergstelligen. Wie kann ich nun die von Franz erwähnten Textoperationen automatisieren?
Vielen Dank für jede Hilfe!
Isis
Hier der Link zur Forumsdiskussion:
https://www.herber.de/forum/archiv/828to832/t829939.htm
Und hier ein Auszug:
Hallo Manuel,
das kannst du in PowerPoint mit einem Makro machen. Das folgende Makro klappert alle Objekte in der Präsentation ab und bei Objekten mit einer Verknüpfung nach Excel wird eine Inputbox angezeigt mit dem aktuellen Link. Diesen kannst du ändern.
Man kann das Ganze jetzt natürlich verfeinern und die erforderlichen Ersetzungen für die verschiedenen Fälle durch entsprechende Textoperationen automatisieren.
Gruss
Franz
Sub VerknuepfungenAendern()
Dim Praes As Presentation, Blatt As Slide, Bild As Shape
Set Praes = ActivePresentation
For Each Blatt In Praes.Slides
For Each Bild In Blatt.Shapes
If Bild.Type = msoLinkedOLEObject Then
If InStr(1, Bild.OLEFormat.ProgID, "Excel.Chart") > 0 Then
'Diagramm in eigenem Register
'C:\TEST\MAPPE10.XLS!Diagramm1
NeuerPfad = InputBox("Neue Verknüpfung", , Bild.LinkFormat.SourceFullName)
If NeuerPfad "" Then
Bild.LinkFormat.SourceFullName = NeuerPfad
End If
End If
If InStr(Bild.OLEFormat.ProgID, "Excel.Sheet") > 0 Then
If InStr(1, Bild.LinkFormat.SourceFullName, "[") > 0 Then
'Diagramm eingebettet in Tabelle
'C:\TEST\MAPPE2.XLS!Tabelle1![MAPPE2.xls]Tabelle1 Diagramm 1
NeuerPfad = InputBox("Neue Verknüpfung", , Bild.LinkFormat.SourceFullName)
Else
'Tabellenbereich
'C:\TEST\MAPPE10.XLS!Tabelle1!Z3S1:Z7S3
NeuerPfad = InputBox("Neue Verknüpfung", , Bild.LinkFormat.SourceFullName)
End If
If NeuerPfad "" Then
Bild.LinkFormat.SourceFullName = NeuerPfad
End If
End If
End If
Next
Next
End Sub