Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Übergeordneter Ordner

Forumthread: Übergeordneter Ordner

Übergeordneter Ordner
27.06.2002 10:30:49
Heinz A. Wankmüller
Hallo Excelfreunde,
wie kann man (per VBA) den Pfad des übergeordneten Ordners definieren?
Ich habe folgendes ohne Erfolg probiert:

Pfad = ThisWorkbook.Parent.Path

Danke
Heinz

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Übergeordneter Ordner
27.06.2002 11:09:24
Coach
Hallo Heinz,

ohne eine eigene Funktion geht das so:
pfad = ThisWorkbook.Path
ChDrive (Left(pfad, 2))
ChDir (pfad)
ChDir ("..")
pfad = CurDir(Left(pfad, 2))

Als Funktion so:

Function IstUnterOrdnerVon(Pfad As String) As String
Dim i As Integer
For i = Len(Pfad) To 3 Step -1
If Mid(Pfad, i, 1) = "\" Then
IstUnterOrdnerVon = Left(Pfad, i - 1)
Exit Function
End If
Next
End Function

Gruß Coach

Anzeige
Re: Übergeordneter Ordner
27.06.2002 11:11:30
Timo
Du möchtest also haben:

Excel-Datei = C:\Programme\Excel\Test.xls
Übergeordneter Ordner = C:\Programme\Excel\

???

Das ist recht einfach:

Jetzt musst du nur der Variable Dateipfad vorher den Pfad übergeben...

Gruss
Timo

Re: DANKE
27.06.2002 11:24:20
Heinz A. Wankmüller
Hallo Coach,
funktioniert wunderbar!
Herzlichen Dank
Heinz
Anzeige
Re: Übergeordneter Ordner
27.06.2002 11:25:10
Heinz A. Wankmüller
Hallo Timo,
funktioniert!
Herzlichen Dank
Heinz
;
Anzeige

Infobox / Tutorial

Übergeordneter Ordner in Excel VBA nutzen


Schritt-für-Schritt-Anleitung

Um den Pfad des übergeordneten Ordners in Excel VBA zu definieren, kannst Du folgende Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11 in Excel.
  2. Erstelle ein neues Modul:

    • Rechtsklicke auf „VBAProject (DeinDateiname)“ und wähle „Einfügen“ > „Modul“.
  3. Füge den folgenden Code ein:

    Sub HoleUebergeordnetenOrdner()
       Dim pfad As String
       pfad = ThisWorkbook.Path
       ChDrive (Left(pfad, 2))
       ChDir (pfad)
       ChDir ("..")
       pfad = CurDir(Left(pfad, 2))
       MsgBox "Übergeordneter Ordner: " & pfad
    End Sub
  4. Führe das Skript aus:

    • Drücke F5, während der Cursor im Code steht, oder gehe zu „Ausführen“ und wähle „Sub/UserForm ausführen“.

Häufige Fehler und Lösungen

  • Fehler: „Pfad nicht gefunden“

    • Lösung: Stelle sicher, dass Du den richtigen Pfad in ThisWorkbook.Path verwendest. Überprüfe, ob die Datei gespeichert ist.
  • Fehler: „Zugriff verweigert“

    • Lösung: Achte darauf, dass Du genügend Berechtigungen hast, um auf den übergeordneten Ordner zuzugreifen.

Alternative Methoden

Eine andere Möglichkeit, den übergeordneten Ordner zu ermitteln, ist durch die Verwendung einer Funktion. Hier ist ein Beispiel:

Function IstUnterOrdnerVon(Pfad As String) As String
    Dim i As Integer
    For i = Len(Pfad) To 3 Step -1
        If Mid(Pfad, i, 1) = "\" Then
            IstUnterOrdnerVon = Left(Pfad, i - 1)
            Exit Function
        End If
    Next
End Function

Diese Funktion gibt den übergeordneten Ordner zurück, wenn Du den aktuellen Pfad übergibst.


Praktische Beispiele

Angenommen, Du hast eine Excel-Datei in C:\Programme\Excel\Test.xls. Um den übergeordneten Ordner zu erhalten, kannst Du den oben genannten Code verwenden. Nach der Ausführung wird C:\Programme\Excel angezeigt.


Tipps für Profis

  • Nutze die Funktion chdrive thisworkbook.path, um sicherzustellen, dass Du im richtigen Laufwerk bist, bevor Du den übergeordneten Ordner ermittelst.
  • Experimentiere mit relativen Pfaden, um Deine VBA-Projekte flexibler zu gestalten, besonders wenn Du mit verschiedenen Benutzern oder Systemen arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich den Pfad in einer Variablen speichern?
Du kannst den Pfad ganz einfach in einer String-Variable speichern, wie im Beispiel gezeigt:

Dim pfad As String
pfad = ThisWorkbook.Path

2. Gibt es eine Möglichkeit, den Pfad dynamisch zu erhalten?
Ja, Du kannst den Code so anpassen, dass er den Pfad automatisch anpasst, wenn die Datei an einen anderen Ort verschoben wird.

3. Funktioniert dieser Code in allen Excel-Versionen?
Ja, dieser VBA-Code sollte in den meisten Excel-Versionen funktionieren, die VBA unterstützen. Achte darauf, dass Du die richtigen Berechtigungen hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige