Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1332to1336
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

300 xls Verknüpfungen in ppt per Makro ändern

300 xls Verknüpfungen in ppt per Makro ändern
17.10.2013 17:33:47
lLexi.
Hallo,
ich habe ein Problem. Auf Grund von einigen Umstellungen wurde ein Excelfile, aus dem mehr als 300 Graphen in einer PowerPoint Präsentation verlinkt waren umbenannt.
Jetzt muss ich natürliche alle Pfade der Links anpassen, damit die Graphen wieder passen, da sich das Excel jeden Monat ändert.
Ich habe leider kaum VBA Kentnisse und habe im Netz noch nichts gefunden, wie man das lösen kann, ohne stundenlang manuell alle Pfade zu ändern.
Habe dieses Makro gefunden, welches leider nicht funktioniert. Ich kann zwar beim ausführen in ppt eine neue Exceldatei auswählen, aber an den Graphen ändert sich nichts.
Ich bin echt verzweifelt und bitte um HÜÜÜÜLFE =)

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


Grüße

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 300 xls Verknüpfungen in ppt per Makro ändern
17.10.2013 21:23:28
Raphael
Hallo ILexi,
eine Folie deiner ppt und eine Beispiel deiner Exceldatei würden es wahrscheinlich erleichtern das Makro zu prüfen und zu erkennen warum es nicht funktioniert.
Aber als reine Trockenübung wird es sehr schwierig.
Gruess
Raphael

AW: 300 xls Verknüpfungen in ppt per Makro ändern
21.10.2013 17:34:02
lLexi.
Hallo,
ich habe zum Testen dieses Makros, da ich es selbst nur im Netz gefunden habe, einfach eine Exceltabelle "erfunden" und daraus ein kleines Säulendiagramm gemacht.
Also einfach:
Jan Feb
X 3 5
Y 5 2
Dieses habe ich dann in die Zwischenablage kopiert PowerPoint geöffnet und über - Einfügen - Zieldesign verwenden und Daten verknüpfen, mit ppt verknüpft.
Im Anschluss einfach mit Alt + F11 VBA geöffnet, eine neues Modul erstellt und diesen Code eingefügt.
Leider funktionert er, wie schon gesagt, nicht. Beim Ausführen poppt lediglich ein Fenster auf, wo man ein neues Excelfile als Pfad auswählen kann. Aber die Grafik ändet sich nicht =(
Ich hoffe, dass noch jemand eine Idee hat, oder einen anderen Vorschlag, wie ich dieses Problem lösen kann.
Danke & greetz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige