Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1636to1640
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Powerpoint Verknüpfung ändern (Laufzeitfehler 5)

Powerpoint Verknüpfung ändern (Laufzeitfehler 5)
16.08.2018 08:36:52
Roland
Hallo zusammen,
dies hier ist mein erster Beitrag, also bitte ich um Nachsicht bezüglich auftretenden Missverständnissen. Nun zu meinem Problem:
Ich bin dabei, eine Präsentation zu automatisieren, die Verknüpfungen zu einer Excel enthält. Präsentation und Excel befinden sich im selben Ordner. Dabei sollen die Makros relativiert werden, damit die Dateien an Externe weitergegeben werden können und diese dieselben Funktionen nutzen können.(In PP und Excel sind jeweils Makros, die ablaufen müssen). Der Ablauf durch die Makros läuft so ab:
Nach öffnen der Präsentation klickt der Anwender auf das Makro "Excel öffnen", welches die _ verknüpfte Excel öffnet.

Sub Exoeffnen()
Dim MSExc As Object, a As String, b As String
a = ActivePresentation.Path
b = a & "\Quelle.xlsm"
Set MSExc = CreateObject("Excel.Application")
MSExc.Visible = True
MSExc.Workbooks.Open b
Call VerknuepfungenAendern
MSExc.ActiveWorkbook.Save
ActivePresentation.UpdateLinks
ActivePresentation.Save
End Sub

Beim Öffnen der Excel laufen Makros zum auffrischen der Daten zuverlässig ab und wechselt zurück, um das Makro VerknuepfungAendern zu starten.
Hierbei scheitert es dann an der dick markierten Zeile, wobei dann Laufzeitfehler 5 erscheint)
Sub VerknuepfungenAendern()
Dim Praes As Presentation, Blatt As Slide, Bild As Shape
Dim vDatei As Variant, sPfad As String, sExcelFile As String
Dim NeuerPfad
sPfad = ActivePresentation.Path
vDatei = sPfad & "\Quelle.xlsm"
sExcelFile = Mid(vDatei, Len(sPfad) + 2)
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 = Bild.LinkFormat.SourceFullName
NeuerPfad = vDatei & Mid(NeuerPfad, InStr(1, NeuerPfad, "!"))
Bild.LinkFormat.SourceFullName = NeuerPfad
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 = Bild.LinkFormat.SourceFullName
NeuerPfad = Mid(NeuerPfad, InStr(1, NeuerPfad, "!"))
NeuerPfad = vDatei & Mid(NeuerPfad, 1, InStr(2, NeuerPfad, "!")) _
& "[" & sExcelFile & Mid(NeuerPfad, InStr(1, NeuerPfad, "]"))
Bild.LinkFormat.SourceFullName = NeuerPfad
Else
'Tabellenbereich
'C:\TEST\MAPPE10.XLS!Tabelle1!Z3S1:Z7S3
NeuerPfad = Bild.LinkFormat.SourceFullName
NeuerPfad = vDatei & Mid(NeuerPfad, InStr(1, NeuerPfad, "!"))
Bild.LinkFormat.SourceFullName = NeuerPfad
End If
End If
End If
Next
Next
End Sub

wie kann ich nun das Makro ändern, sodass Powerpoint jedes Mal (um sicherzustellen, dass die Verknüpfungen immer korrekt sind) die Verknüpfungen zuverlässig ändert, bzw. erkennt jemand, warum der Fehler passiert?
Das Makro habe ich kopiert und angepasst, da ich selbst nicht begabt bin mit VBA
Ich bedanke mich schon einmal für jede Hilfe!
Lg Roland

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Schon mal Debugged?
16.08.2018 10:34:10
EtoPHG
Hallo Roland,
Setz doch mal eine Codezeile
Msgbox vDatei & Mid(NeuerPfad, InStr(1, NeuerPfad, "!"))

Kommt der Fehler schon da, dürfte es mit der Variablen NeuerPfad zu tun haben.
vor die fehlerhafte, dann siehst du was da gemacht wird!
Oder mit F8 Schritt für Schritt den Codeablauf testen und durch Mausberührung der Variablen jeweils deren Inhalt prüfen.
Gruess Hansueli
AW: Powerpoint Verknüpfung ändern (Laufzeitfehler 5)
16.08.2018 11:24:31
Roland
Hallo Hansueli,
ich habe nun einen neuen Stand: nun kommt die Fehlermeldung (warum auch immer) nicht mehr. Stattdessen habe ich nun ein Problem beim Aktualisieren.
Ausgangszustand:
Präsentation und Excel-Datei sind geöffnet.
Im Makro 'VerknüpfungÄndern' ändert dieser nun tatsächlich die Verknüpfung, jedoch öffnet sich in der Zeile "Bild.LinkFormat.SourceFullName = NeuerPfad" dadurch automatisch die neue Quelle (bzw. das ist ja nicht mehr möglich, da diese bereits geöffnet ist), wodurch die Fehlermeldung von Excel "Excel kann keine gleichnamigen Dateien zugleich öffnen" erscheint. Kann ich das verhindern und erst später durch "UpdateLinks" durchführen? Desweiteren ist mir hierbei aufgefallen, dass er pro geänderter Verknüpfung 4 mal die Quelldatei öffnen möchte, gibt es da einen Grund dafür? Warum 4 mal? (muss jedesmal die Fehlermeldung bestätigen und dann erscheint sie neu). Nachdem ich durch die Fehlermeldungen (oder eben 4 mal öffnen der Datei) durch bin, ist die Quelle geändert.
Hoffe das ist verständlich genug, ansonsten einfach fragen.
Lg Roland
Anzeige
AW: Powerpoint Verknüpfung ändern (Laufzeitfehler 5)
16.08.2018 11:27:32
Roland
Übrigens, wenn die Excel-Datei geschlossen ist, dann öffnet sich diese 4 mal kurz, um dann zur nächsten Verknüpfung zu springen. Das sind die beiden Szenarien... 4 mal öffnen, oder 4 mal Fehlermeldung.

189 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige