Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
676to680
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
676to680
676to680
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel In Powerpoint updaten

Excel In Powerpoint updaten
05.10.2005 16:56:59
Sebastian
Hi zusammen, hoffe es kann mir jemand weiterhelfen. Bin hier kurz vor dem Verzweifeln, weil das Makro einfach nicht das macht was ich will. Also es geht um folgendes Problem:
Ich habe eine PP die aus einer Exceldatei gefüttert wird. Diese Exceldatei wird jeden Monat mit neuen Zahlen aktualisiert und unter einem neuen Namen gespeichert (z.B. von Expense Okt.xls nach Expense Nov.xls). Mein Problem liegt jetzt darin, dass ich die Links in der PP automatisch mit den neuen Zahlen aus der neuen Excel Datei updaten will. Dazu habe ich schon folgendes Maro gefunden, dass aber aus irgendwelchen Gründen nicht richtig funktioniert. Es läuft zwar einwandfrei durch, aber die Links in der PP sind nicht aktualisiert. Hoffe es kann mir jemand weiterhelfen. Schon mal vielen Dank für eure Mühe.
Viele Grüße Sebastian
Das Makro sieht wie folgt aus:
Option Explicit
'Begin Code Sequenz
Const ppPresName As String = "\SIP_GER Presentation.ppt"
Const LinkIni As String = "\ppLink.ini"

Sub PP_Presentation_Start_and_Update_ObjectLinks()
'(C) Ramses
'Integer Delaration
Dim i As Integer, Qe As Integer
'Object Deklaration
Dim ppApp As Object, ppPres As Object, sh As Object
'String Deklaration
Dim ppFile As String, iniFile As String
Dim LinkFile As String, oldLinkfile As String, NewLinkfile As String
Dim tmpLink As String, onlyOldFileName As String, onlyNewFileName As String, cBSl As Integer
'Variablen füllen
NewLinkfile = ""
'Prüfen ob PP-Datei vorhanden
ppFile = ThisWorkbook.Path & ppPresName
If Dir(ppFile) = "" Then
Beep
Qe = MsgBox("Die Datei " & ppFile & " existiert nicht!", vbCritical + vbOKOnly, "Datei Fehler")
Exit Sub
End If
'Zwischenspeichern des Namens für die Quelldatei
iniFile = ThisWorkbook.Path & LinkIni
'Prüfen ob INI Datei vorhanden
If Dir(iniFile) = "" Then
Qe = MsgBox("Die Datei " & Chr$(13) & iniFile & Chr$(13) & "wurde noch nicht definiert," & Chr$(13) & _
"Es wird eine neue " & Chr$(13) & LinkIni & Chr$(13) & "erstellt mit der Quelle zu " & Chr$(13) & _
ThisWorkbook.FullName, vbInformation + vbOKCancel, "Source Fehler")
If Qe = vbCancel Then
Qe = MsgBox("Das Erstellen der Datei " & Chr$(13) & _
LinkIni & Chr$(13) & _
" wurde abgebrochen," & Chr$(13) & _
"Das Makro zum Starten der Präsentation wird " & Chr(13) & _
"gestoppt und die PP Links nicht upgedatet !", vbInformation + vbOKOnly, "Source Fehler")
Exit Sub
End If
'Erstellen einer neuen Link.ini
Open iniFile For Output As #1
'Schreiben der aktuell geöffneten Datei als Verknüpfung
Print #1, ThisWorkbook.FullName
Close #1
End If
'Schliessen einer eventuell geöffneten INI-Datei
Close #1
'Der Speicherort der INI Datei wird in der Const LiniIni definiert
Open iniFile For Input As #1
Do While Not EOF(1)
'Einlesen der SourceQuelle für die Präsentation
Input #1, oldLinkfile
Loop
'Schliessen der Datei
Close #1
'Abfrage ob neue Verknüpfungdatei definiert werden soll
Qe = MsgBox("Die aktuelle Verknüpfungdatei von " & Chr$(13) & ppPresName & Chr$(13) & _
"ist derzeit die Datei " & Chr$(13) & _
oldLinkfile & "." & Chr$(13) & _
"Soll die Verknüpfungsdatei geändert werden ?", vbQuestion + vbYesNo, "Source Definition")
If Qe = vbYes Then
'Wenn ja
NewLinkfile = Application.GetOpenFilename("XLS Dateien (*.xls),", True, "Neue Verknüpfungsdatei auswählen", "Übernehmen", False)
'sicherheitsabfrage
Qe = MsgBox("Soll die Datei " & Chr$(13) & NewLinkfile & Chr$(13) & "als neue Verknüpfung definiert werden?", _
vbQuestion + vbOKCancel, "Source Definition")
If Qe = vbNo Then
'Verwendung der bisherigen Datei um Update der Präsentation
Qe = MsgBox("Die Definition der Datei" & Chr$(13) & _
NewLinkfile & Chr$(13) & _
" wurde abgebrochen," & Chr$(13) & _
"Es wird die alte Datei " & oldLinkfile & "verwendet !", vbInformation + vbOKOnly, "Source Definition")
Else
'Neue Linkdatei wird geschrieben und zum Update verwendet
Open iniFile For Output As #1
'Schreiben der aktuell geöffneten Datei als Verknüpfung
Write #1, NewLinkfile
Close #1
End If
End If
Set ppApp = CreateObject("PowerPoint.Application")
ppApp.Visible = msoTrue
Set ppPres = ppApp.Presentations.Open(ppFile)
'Verknüpfungen updaten
'Wenn die Verknüpfungdatei nicht geändert wurde
'werden nur die Werte aktualisiert
If NewLinkfile = "" Then
For i = 1 To ppPres.Slides.Count
For Each sh In ppPres.Slides(i).Shapes
If sh.Type = msoLinkedOLEObject Then
With sh.LinkFormat
.Update
End With
End If
Next
Next i
Else
'Die Verknüpfungsdatei wurde geändert
'Dazu muss der Filenamen extrahiert werden
'den die directen Object Bezüge müssen ebenfalls angepasst werden
'Variante für alle Excel Versionen
cBSl = 0
For i = Len(oldLinkfile) To 1 Step -1
If Mid(oldLinkfile, i, 1) = "\" Then
onlyOldFileName = Right(oldLinkfile, Len(oldLinkfile) - i)
Exit For
End If
Next i
cBSl = 0
For i = Len(NewLinkfile) To 1 Step -1
If Mid(NewLinkfile, i, 1) = "\" Then
onlyNewFileName = Right(NewLinkfile, Len(NewLinkfile) - i)
Exit For
End If
Next i
For i = 1 To ppPres.Slides.Count
For Each sh In ppPres.Slides(i).Shapes
If sh.Type = msoLinkedOLEObject Then
With sh.LinkFormat
'Externen Filebezug updaten
tmpLink = Replace(.SourceFullName, oldLinkfile, NewLinkfile, 1)
'Updaten der direkten Object Bezüge
tmpLink = Replace(tmpLink, onlyOldFileName, onlyNewFileName, 1)
.SourceFullName = tmpLink
.Update
End With
End If
Next
Next i
End If
ppPres.SlideShowSettings.Run
'ppApp.Quit
Set ppPres = Nothing
Set ppApp = Nothing
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Excel In Powerpoint updaten
05.10.2005 21:42:08
Ramses
Hallo
Welcher Art Verknüpfungen sind das das ?
Tabellen objecte oder Diagramme
Wurden die Objecte wirklich über "Verknüpfen" eingefügt, oder nur über einfügen ?
Liegt die Presentation im gleichen Ordner wie das EXCEL-File ?
Gruss Rainer
AW: Excel In Powerpoint updaten
06.10.2005 12:59:13
Sebastian
HI Rainer, die Charts sind als Objekte/Excel Charts in die PP eingefügt. Die Files sind beide im gleichen Ordner.
Gruss Sebastian
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige