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

ThisWorkbook.Path mit Unterordner

Forumthread: ThisWorkbook.Path mit Unterordner

ThisWorkbook.Path mit Unterordner
17.09.2007 21:38:00
edie
Hallo Zusammen,
benötige Hilfe für folgendes Problem:
sPath = ThisWorkbook.Path so erweitern damit der Daten-Import
aus dem Unterordner "Planung" statt windet.
Habe probiert: sPath = ThisWorkbook.Path & "\Planung\"
funktioniert nicht. Kann mir jemand helfen?
Hier der VBA-Code aus dem Archiv.

Sub Importieren()
Dim rng As Range
Dim sFormula As String, sPath As String
Dim sWkb As String, sWks As String
sPath = ThisWorkbook.Path
sWkb = Range("F1").Value
If Dir(sPath & "\" & sWkb) = "" Then
Beep
MsgBox "Testdatei wurde nicht gefunden!"
End If
sWks = Range("F2").Value
sFormula = "='" & sPath & "\"
sFormula = sFormula & "[" & sWkb & "]"
sFormula = sFormula & sWks & "'!"
For Each rng In Selection.Cells
rng.Formula = sFormula & rng.Address
Next rng
With Selection
.Value = .Value
End With
End Sub


Vielen Dank im Voraus.
Grüße

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ThisWorkbook.Path mit Unterordner
17.09.2007 21:54:00
Swen
Hallo edie,
versuch mal
sPath = ThisWorkbook.Path & "\Planung"
du hast ja in der folgenden Zeile schon ein "\"
sFormula = "='" & sPath & "\"
vieleicht liegt es ja da dran?
da ich mir aber nicht sicher bin lass ich den thread offen!
Gruß
Swen

Anzeige
AW: ThisWorkbook.Path mit Unterordner
17.09.2007 22:03:00
edie
Hallo Swen,
tausend mal Danke, es funktioniert.
Grüße

AW: ThisWorkbook.Path mit Unterordner
17.09.2007 22:03:13
edie
Hallo Swen,
tausend mal Danke, es funktioniert.
Grüße
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

ThisWorkbook.Path in VBA mit Unterordner verwenden


Schritt-für-Schritt-Anleitung

Um den ThisWorkbook.Path in VBA für den Import von Daten aus einem Unterordner zu nutzen, kannst du folgende Schritte befolgen:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor von Excel zu öffnen.

  2. Neues Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)", wähle "Einfügen" und dann "Modul".

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub Importieren()
       Dim rng As Range
       Dim sFormula As String, sPath As String
       Dim sWkb As String, sWks As String
       sPath = ThisWorkbook.Path & "\Planung\"  ' Hier den Unterordner angeben
       sWkb = Range("F1").Value
       If Dir(sPath & sWkb) = "" Then
           Beep
           MsgBox "Testdatei wurde nicht gefunden!"
       End If
       sWks = Range("F2").Value
       sFormula = "='" & sPath & "[" & sWkb & "]" & sWks & "'!"
       For Each rng In Selection.Cells
           rng.Formula = sFormula & rng.Address
       Next rng
       With Selection
           .Value = .Value
       End With
    End Sub
  4. Parameter anpassen: Stelle sicher, dass die Zellen F1 und F2 die richtigen Dateinamen und Arbeitsblattnamen enthalten.

  5. Makro ausführen: Wähle die Zellen aus, die die Formeln erhalten sollen, und führe das Makro aus.


Häufige Fehler und Lösungen

  • Problem: Der Pfad wird nicht gefunden.

    • Lösung: Überprüfe, ob der Unterordner "Planung" tatsächlich existiert und ob der Dateiname in Zelle F1 korrekt ist.
  • Problem: Der Code gibt eine Fehlermeldung aus.

    • Lösung: Stelle sicher, dass die Zeile sPath = ThisWorkbook.Path & "\Planung\" korrekt ist. Es darf kein doppelter Backslash (\\) vorhanden sein.

Alternative Methoden

Falls du eine andere Methode zur Handhabung von Pfaden in Excel VBA bevorzugst, kannst du auch ActiveWorkbook.Path verwenden. Der Code würde dann entsprechend angepasst:

sPath = ActiveWorkbook.Path & "\Planung\"

Beachte, dass ActiveWorkbook sich auf das gerade geöffnete Workbook bezieht, während ThisWorkbook immer das Workbook ist, in dem der Code läuft.


Praktische Beispiele

  1. Import aus einem festen Unterordner:

    sPath = ThisWorkbook.Path & "\Daten\"
  2. Dynamische Ordnerauswahl: Lasse den Benutzer einen Ordner auswählen:

    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    If fd.Show = -1 Then
       sPath = fd.SelectedItems(1) & "\"
    End If

Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.
  • Verwende Debug.Print zur Fehlersuche, um Werte von Variablen während der Ausführung des Codes anzuzeigen.
  • Wenn du mit vielen Dateien arbeitest, könnte eine Schleife über alle Dateien im Unterordner nützlich sein. Nutze dafür Dir:

    Dim datei As String
    datei = Dir(sPath & "*.xlsx")  ' Alle Excel-Dateien im Unterordner
    Do While datei <> ""
       ' Verarbeite die Datei
       datei = Dir
    Loop

FAQ: Häufige Fragen

1. Wie verwende ich ThisWorkbook.Path in einer Formel?
Du kannst ThisWorkbook.Path in einer Formel verwenden, indem du es in eine String-Formel einfügst, so wie im obigen Beispiel gezeigt.

2. Funktioniert dieser Ansatz in Excel 365?
Ja, der Code ist mit Excel 365 kompatibel und sollte auch in früheren Versionen funktionieren.

3. Was ist der Unterschied zwischen ThisWorkbook und ActiveWorkbook?
ThisWorkbook bezieht sich auf das Workbook, in dem der VBA-Code ausgeführt wird, während ActiveWorkbook das aktuell aktive Workbook ist, das möglicherweise ein anderes Workbook sein kann.

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