Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Excel - Powerpoint - Verknüpfung - Pfad ändern

Excel - Powerpoint - Verknüpfung - Pfad ändern
Isis
Hallo,
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

Anzeige
AW: Excel - Powerpoint - Verknüpfung - Pfad ändern
30.09.2010 07:39:29
Dirk
Hallo Isis,
Falls alle Verknuepfungen immer mit der selben Mappe verbunden werden sollen, aender doch den Code und setze eine Flag zum Ueberspringen der Input-abfrage: (Code ungetestet!)
If InStr(1, Bild.OLEFormat.ProgID, "Excel.Chart") > 0 Then
'Diagramm in eigenem Register
'C:\TEST\MAPPE10.XLS!Diagramm1
if NeuerPfad="" or UserSel=VBNo then
NeuerPfad = InputBox("Neue Verknüpfung", , Bild.LinkFormat.SourceFullName)
If NeuerPfad <> "" Then
UserSel=msgbox("Soll immer dieser Pfad verwendet werden?","Benutzereingabe",VBYesNo)
if UserSel="" then
UserSel=vbno
end if
Bild.LinkFormat.SourceFullName = NeuerPfad
if UserSel=VBNo then
neuerPfad=""
end if
End If
elseif UserSel=VBYes then
Bild.LinkFormat.SourceFullName = NeuerPfad
end if
End If
Gruss
Dirk aus Dubai
Anzeige
AW: Excel - Powerpoint - Verknüpfung - Pfad ändern
30.09.2010 10:00:19
Isis
Hallo Dirk, danke für deine Hilfe! Ja, genau, es geht immer um die selbe Arbeitsmappe und somit immer um die selbe Pfadänderung.
Leider bin ich mir bei deiner Syntax unsicher wo und wie ich den neuen Pfad eingeben muss (Ort bis zur gewünschten Arbeitsmappe?), und was schreibe ich bei "Benutzereingabe"?
Es wäre wunderbar, wenn du mir ein Beispiel einbauen könntest!
Vielen Dank.
Isis
Anzeige
AW: Excel - Powerpoint - Verknüpfung - Pfad ändern
30.09.2010 11:08:05
Dirk
Hallo!
Probier mal so:
Sub VerknuepfungenAendern()
Dim Praes As Presentation, Blatt As Slide, Bild As Shape
Dim UserSel As String, NeuerPfad As String
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
If NeuerPfad = "" Or UserSel = vbNo Then
NeuerPfad = InputBox("Neue Verknüpfung", , Bild.LinkFormat.SourceFullName)
If NeuerPfad  "" Then
UserSel = MsgBox("Soll immer dieser Pfad verwendet werden?", vbYesNo, " _
Benutzereingabe")
If UserSel = "" Then
UserSel = vbNo
End If
Bild.LinkFormat.SourceFullName = NeuerPfad
If UserSel = vbNo Then
NeuerPfad = ""
End If
End If
ElseIf UserSel = vbYes Then
Bild.LinkFormat.SourceFullName = NeuerPfad
End If
End If
End If
Next
Next
End Sub

gruss
Dirk aus Dubai
Anzeige
AW: Excel - Powerpoint - Verknüpfung - Pfad ändern
30.09.2010 16:07:56
Isis
Hallo Dirk,
leider passiert jetzt gar nichts, denke es liegt an mir! :-)
Bin gar nicht firm in VBA, wie du sicherlich festgestellt hast. Habe eine Leerstelle weggenommen, da VBA mir gesagt hat, dass ein ungültiger Befehl in einer Zeile (Bei Benutzereingabe) vorliegt.
Hier jetzt die Syntax mit meinen Pfaden.
Hoffe, du findest meinen "Honkfehler". Und nochmal ganz herzlichen Dank für Deine Unterstützung.
Beste Grüße
Isis
Sub VerknuepfungenAendern()
Dim Praes As Presentation, Blatt As Slide, Bild As Shape
Dim UserSel As String, NeuerPfad As String
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
If NeuerPfad = "" Or UserSel = vbNo Then
NeuerPfad = InputBox("\\Users\Powerpoint\Verknüpfungsdiagramme.xlsx", , Bild. _
LinkFormat.SourceFullName)
If NeuerPfad  "" Then
UserSel = MsgBox("\\Users\Powerpoint\Verknüpfungsdiagramme.xlsx", vbYesNo, " _
_Benutzereingabe")
If UserSel = "" Then
UserSel = vbNo
End If
Bild.LinkFormat.SourceFullName = NeuerPfad
If UserSel = vbNo Then
NeuerPfad = "\\Users\Powerpoint\Verknüpfungsdiagramme.xlsx"
End If
End If
ElseIf UserSel = vbYes Then
Bild.LinkFormat.SourceFullName = NeuerPfad
End If
End If
End If
Next
Next
End Sub

Anzeige
AW: Excel - Powerpoint - Verknüpfung - Pfad ändern
03.10.2010 10:31:23
Dirk
Hallo!
Lade doch mal die Datei hoch, da ist das dann einfacher.
gruss
Dirk aus Dubai
Excel - Powerpoint - Verknüpfung - Datei ändern
03.10.2010 20:36:25
fcs
Hallo Isis,
hier eine modifizierte Variante meines Makros. Da alle Verknüpfungen in der PowerPoint-Präsentation in die gleiche Exceldatei erfolgen, kann man die Verknüpfungen wie folgt per Makro auf eine andere Exceldatei setzen. Dabei wird als erstes im Dialofenster die Exceldatei ausgewählt, auf die die Verknüpfung geändert werden soll. Dann arbeitet das Makro alle verknüpften Bild-Objekte der Präsentation ab und ändert die Verknüpfung.
Ich konnte "nur" mit Dateien auf lokalen Laufwerken testen. Ich hoffe das klappt dann auch mit Dateien auf Servern/Netzlaufwerken.
Gruß
Franz
Sub VerknuepfungenAendern()
Dim Praes As Presentation, Blatt As Slide, Bild As Shape
Dim vDatei As Variant, sPfad As String, sExcelFile As String
Dim NeuerPfad As String
With Application.FileDialog(msoFileDialogFilePicker)
.InitialView = msoFileDialogViewDetails
.Title = "Bitte neue Exceldatei für Verknüpfung auswählen"
.ButtonName = "Auswählen"
.InitialFileName = "*.xls*"
.AllowMultiSelect = False
If .Show = 0 Then Exit Sub
sPfad = VBA.CurDir
vDatei = .SelectedItems(1)
sExcelFile = Mid(vDatei, Len(sPfad) + 2)
End With
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

Anzeige
AW: Excel - Powerpoint - Verknüpfung - Datei ändern
04.10.2010 10:15:56
Isis
Hallo Franz!
Hiermit meinen allerherzlichsten Dank! Genau das ist es! Es funktioniert wunderbar!
Natürlich auch nochmal ganz viel Dank an Dirk!
Euch auch noch viel Erfolg!
Allerliebste Grüße
Isis

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel und PowerPoint: Verknüpfungen einfach ändern


Schritt-für-Schritt-Anleitung

Um die Verknüpfungen zwischen Excel und PowerPoint effizient zu ändern, kannst Du ein VBA-Makro verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Makro erstellen:

    • Öffne PowerPoint und drücke ALT + F11, um den VBA-Editor zu starten.
    • Füge ein neues Modul hinzu, indem Du im Menü auf Einfügen > Modul klickst.
  2. Code einfügen:

    • Kopiere den folgenden VBA-Code in das Modul:
    Sub VerknuepfungenAendern()
       Dim Praes As Presentation, Blatt As Slide, Bild As Shape
       Dim vDatei As Variant, sPfad As String, sExcelFile As String
       Dim NeuerPfad As String
       With Application.FileDialog(msoFileDialogFilePicker)
           .Title = "Bitte neue Exceldatei für Verknüpfung auswählen"
           .AllowMultiSelect = False
           If .Show = 0 Then Exit Sub
           vDatei = .SelectedItems(1)
           sExcelFile = Mid(vDatei, Len(sPfad) + 2)
       End With
       Set Praes = ActivePresentation
       For Each Blatt In Praes.Slides
           For Each Bild In Blatt.Shapes
               If Bild.Type = msoLinkedOLEObject Then
                   NeuerPfad = Bild.LinkFormat.SourceFullName
                   NeuerPfad = vDatei & Mid(NeuerPfad, InStr(1, NeuerPfad, "!"))
                   Bild.LinkFormat.SourceFullName = NeuerPfad
               End If
           Next
       Next
    End Sub
  3. Makro ausführen:

    • Schließe den VBA-Editor und kehre zu PowerPoint zurück.
    • Drücke ALT + F8, wähle VerknuepfungenAendern und klicke auf Ausführen.
  4. Neue Excel-Datei auswählen:

    • Ein Dialogfenster wird geöffnet, in dem Du die neue Excel-Datei auswählen kannst, auf die die Verknüpfungen geändert werden sollen.

Häufige Fehler und Lösungen

  • Fehler: "Ungültiger Befehl"

    • Lösung: Überprüfe den VBA-Code auf Syntaxfehler. Achte besonders auf Leerzeichen und korrekte Zeichen.
  • Fehler: Keine Änderungen sichtbar

    • Lösung: Stelle sicher, dass die Bilder tatsächlich mit einer Excel-Datei verknüpft sind. Überprüfe die Verknüpfungen in PowerPoint unter Datei > Informationen > Verknüpfungen bearbeiten.

Alternative Methoden

Wenn Du die Verknüpfungen in PowerPoint nicht manuell oder über ein Makro ändern möchtest, kannst Du auch die Verknüpfungen direkt in PowerPoint bearbeiten:

  1. Gehe zu Datei > Informationen.
  2. Klicke auf Verknüpfungen bearbeiten.
  3. Wähle die gewünschte Verknüpfung aus und klicke auf Ändern, um einen neuen Pfad anzugeben.

Mit dieser Methode kannst Du auch mehrere Verknüpfungen gleichzeitig ändern.


Praktische Beispiele

Beispiel 1: Du hast eine PowerPoint-Präsentation mit mehreren Diagrammen, die auf eine bestimmte Excel-Datei verknüpft sind. Nach dem Umbenennen der Excel-Datei kannst Du das VBA-Makro verwenden, um alle Verknüpfungen zu aktualisieren, ohne jede einzelne manuell zu ändern.

Beispiel 2: Wenn Du die Verknüpfungen zu einem neuen Speicherort auf einem Netzlaufwerk ändern möchtest, kannst Du das Makro so anpassen, dass es die neue Datei von dort auswählt.


Tipps für Profis

  • Automatisiere den Prozess: Wenn Du regelmäßig Verknüpfungen ändern musst, erstelle ein benutzerdefiniertes Makro, das den Vorgang automatisiert und alle notwendigen Änderungen in einem Durchgang vornimmt.

  • Backup machen: Erstelle immer eine Sicherheitskopie Deiner Präsentation, bevor Du mit dem Ändern der Verknüpfungen beginnst, um Datenverlust zu vermeiden.

  • Verknüpfungen überprüfen: Nutze die Funktion Verknüpfungen bearbeiten, um sicherzustellen, dass alle Verknüpfungen korrekt sind, insbesondere nach dem Speichern auf einem anderen Laufwerk.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Verknüpfungen gleichzeitig ändern?
Du kannst das oben beschriebene Makro verwenden, um alle Verknüpfungen in einer PowerPoint-Präsentation auf einmal zu ändern.

2. Was mache ich, wenn ich keine Berechtigung für die Excel-Datei habe?
Wenn Du keine Berechtigungen hast, wende Dich an den Administrator, um die notwendigen Zugriffsrechte zu erhalten.

3. Kann ich die Verknüpfungen auch in einer anderen PowerPoint-Version ändern?
Ja, die grundlegenden Funktionen sind in den meisten PowerPoint-Versionen ähnlich, aber die Schritte zur Ausführung können leicht variieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige