AW: Pfad per vba auslesen
27.09.2006 08:44:42
lueckii
Hi Rainer!
Bei mir funktioniert der Update so, daß ich per click auf nen button in Excel die Präsentation öffne. Dann ist im Excel-VBA-Code ein Verweis zu PP-VBA, welcher dann den Update der Diagramme in Powerpoint macht. Hier mal kurz der Code.
In Excel-Vba:
Application.Cursor = xlWait
'Makro ausführen
ppt.Run Pfad & DateiNamePPT & "!modul1.LinkUpdate" 'Öffnet Modul1 in pp
Set ppt = Nothing
Set pres = Nothing
In PP:
Sub LinkUpdate()
Dim Link As String
Dim neuerLink As String
Dim Position As Long
Dim PosNeu As Long
Dim Blatt As Variant
Dim Diagramm As Variant
Dim aktuellerPfad As String
Dim DateiNamePPT As String
Dim DateiNameXLS As String
Dim Zeitstempel As String
Dim Fusszeile As String
DateiNamePPT = LCase(ActivePresentation.Name)
Rem PPT 97 liefert als Namen der aktuellen Präsentation den Dateinamen
Rem OHNE Dateierweiterung, folgender IF Block behandelt diesen Sonderfall
If Right(DateiNamePPT, 4) = ".ppt" Then
DateiNameXLS = 'Hier soll der Dateiname der geöffneten Präsentation ausgelesen werden '
End If
aktuellerPfad = 'Hier soll der Pfad der geöffneten XLS-Datei ausgelesen werden
SourceFullName = DateiNameXLS
Rem Verknüpfungen aktualisieren
For Each Blatt In Presentations(DateiNamePPT).Slides
For Each Diagramm In Blatt.Shapes
If Diagramm.Type = 10 Then
Link = LCase(Diagramm.LinkFormat.SourceFullName)
'Position = InStrRev(Link, "xls") + 4
Rem Folgende Schleife durchsucht die bisherige Verknüpfung
Rem von hinten nach der Zeichenfolge "xls"
Do
Position = PosNeu
PosNeu = InStr(PosNeu + 1, Link, "xls")
Loop While Position < PosNeu
Position = Position + 4
neuerLink = aktuellerPfad & DateiNameXLS & "!" & Mid(Link, Position)
'Debug.Print Link
'Debug.Print neuerLink
'Debug.Print
If neuerLink <> Link Then
Diagramm.LinkFormat.SourceFullName = neuerLink
End If
Diagramm.LinkFormat.Update
End If
Next Diagramm
Next Blatt
'Presentations("Diagramme Werksvergleich.ppt").Save
End Sub
Ich brauch dieses auslesen des Pfades un ddes Dateinamens, weil die Excel Datei, aus der
die Zahlen up-gedatet werden, einen noch nicht bekannten Namen hat (also immer die geöffnete sein soll) und nicht im gleichen Pfad steht, wie die ppt-Datei. Auch der Pfad(weder Laufwerk, noch Ordner) steht noch nicht fest.
Gruß Martin