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

Relative Pfadangabe in Makro

Relative Pfadangabe in Makro
02.11.2005 13:23:30
Jodelsepp
Hallo Ihr Leut,
Ich habe ein Makro, in dem ich bisher absolute Pfade zum Speichern und Abrufen benutzt habe. Wenn ich diese Datei aber verschiebe, muss ich immer die Pfade erst wieder ändern, damit es funktioniert.
Daher würde ich gern die Pfade relativ anlegen. Meinen Startordner, hole ich mir immer so:
Pfad = ThisWorkbook.Path (z.B. C:\Windows\Bilder)
Jetzt will ich aber aber auf einen anderen Ordner relativ zugreifen, der auch in c:\Windows liegt (z.B. C:\Windows\Musik)
Mit der HTML-Methode ..\ hab ich es versucht, Windows erkennt das auch, aber innerhalb von Excel funktionieren die Bezüge, in denen ich den Pfad ebenso verwende, nicht.
Hier wird der Pfad dann zu bspw. C:\Windows\Bilder\..\Musik und ich bekomme die Meldung dass der Ordner nicht existiert.
Ich wäre Euch sehr dankbar, wenn mir jemand helfen könnte.
Gruß Jodelsepp

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Relative Pfadangabe in Makro
02.11.2005 13:32:26
Matthias
Hallo Sepp,

Function TopFolder(ByVal pfad As String) As String
If Right(pfad, 1) = "\" Then
pfad = Left(pfad, Len(pfad) - 1)
End If
TopFolder = Left(pfad, InStrRev(pfad, "\") - 1)
End Function

MsgBox TopFolder(ThisWorkbook.Path) & "\Bilder"
Gruß Matthias
AW: Relative Pfadangabe in Makro
02.11.2005 17:32:31
Jodelsepp
Vielen Dank, Matthias, hat geklappt!
Nur eins würd ich gern noch wissen.
Ist das eigentlich eine rekursive Methode? Oder was macht die Funktion hier?
TopFolder = Left(pfad, InStrRev(pfad, "\") - 1)
AW: Relative Pfadangabe in Makro
02.11.2005 17:35:16
Matthias
Hallo Sepp,
eine Rekursive Funktion ruft sich selbst auf.
Aber dies hier ist keine. InStrRev() durchsucht den String von hinten nach vorne, das ist alles. Vorsicht, die Funktion gibt es noch nicht unter Excel 97.
Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige