Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1176to1180
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

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

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
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

7 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige