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

Pfad per vba auslesen

Pfad per vba auslesen
25.09.2006 13:19:37
lueckii
Hallo Zusammen!
Frage: Ich habe eine Powerpoint Präse , die per link(Diagramm) mit ner excel-datei verbunden ist. wenn ich diese PP aus excel per knopfdruck öffne, aktusalisiert sie sich sofort. Das funktioniert, wenn die PP im selben Verzeichniss is, wie die xls datei. Sie ist aber in nem Unterordner des Verzeichnisses. Also muß ich ja jetzt im Code der PP nur den Pfadnamen ändern. Ich möchte also, daß beim debuggen(des PP Codes) der Pfad der aktuell geöffneten xls.Datei ausgelesen wird. Wie kann man das machen?
Der Pfad:
xls ist in C:\test.xls
ppt ist in C:\Präsentationen\Präse.ppt
Hier der jetzige Code:
DateiNamePPT = LCase(ActivePresentation.Name)
If Right(DateiNamePPT, 4) = ".ppt" Then
'Jetzt sollte xls Name der offenen Datei ausgelesen werden. DIe PPt heißt nämlich anders als die xls.'
DateiNameXLS = LCase(Left(DateiNamePPT, Len(DateiNamePPT) - 4)& ".xls")
Else
DateiNameXLS = LCase(DateiNamePPT & ".xls")
End If
'Der aktuelle Pfad sollte der Pfad der Xls-Datei sein, Also C:\'
aktuellerPfad = LCase(Presentations(DateiNamePPT).Path & "\")
Hat einer vielleicht ne idee?
Danke schon mal für die Mühe
Gruß Martin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pfad per vba auslesen
26.09.2006 09:05:34
lueckii
Servus Rainer!
Danke für den Tip! Funktioniert aber leider nicht so bei mir.
Aber vielleicht hast du ja nochn Tip, wie ich mit vba in Powerpoint, die derzeit göffnete Excel-Datei auslesen kann.
Gruß Martin
AW: Pfad per vba auslesen
26.09.2006 19:33:20
ramses
Hallo
Ich versteh ehrlich gesagt die Anforderung nicht.
Wozu musst das wissen? Du öffnest doch die Datei, warum musst du dann den Pfad noch wissen ?
Gruss Rainer
Anzeige
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
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige