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

Forumthread: Aktuellen Pfad in Variable einlesen

Aktuellen Pfad in Variable einlesen
07.11.2008 06:58:19
Daniel
Hallo Excel-Götter,
ich als VBA-Dummie darf mich mit einem schönen Makro-Problem befassen:
Ich arbeite mit einem Excel-File, das Auswertungen aufgrund von Daten in einem 2.File macht. Beide Files liegen im gleichen Ordner auf meinem Rechner. Das ganze wurde erstellt von meinem Vorgänger, der nicht mehr in der Firma ist.
Da diese Auswertungen mehrmals pro Woche gefahren werden müssen, ich aber öfters mal ausser Haus bin, möchte ich die Files ins Netzwerk stellen, so dass auch mein Kollege damit arbeiten kann. Zudem möchten wir diese Auswertung weiteren Leuten in der Firma zur Verfügung stellen, damit sie die Auswertungen für ihre Abteilung auch nach unserem System machen können.
Da die Abteilungen ihre Daten in unterschiedlichen Ordnern im Netz haben, suche ich nun einen Code, der zu Beginn des Makros den aktuellen Laufwerkspfad einliest und ans Makro übergibt.
Aktuell sieht das so aus:
Dim strPfad As String
strPfad = "D\Daten\PVD\Auswertungen\"
strPfad wird im Makro zig mal aufgerufen, um die Daten zu holen, daran möchte ich nicht schrauben müssen.
Wie gesagt, ich hab von VBA nicht wirklich eine Ahnung, deshalb bin ich um jede "pfannenfertige" Lösung dankbar.
Besten Dank für Eure Hilfe!
Daniel
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktuellen Pfad in Variable einlesen
07.11.2008 07:07:55
Beverly
Hi Daniel,
der Pfad der Arbeitsmappe mit dem Code:

strPfad = ThisWorkbook.Path




AW: Aktuellen Pfad in Variable einlesen
07.11.2008 07:13:55
Daniel
Hallo Karin,
danke für die schnelle Antwort; leider wars das nicht, kriege eine Fehlermeldung "1004"
Gruss
Daniel
Anzeige
AW: Aktuellen Pfad in Variable einlesen
07.11.2008 07:25:54
Beverly
Hi Daniel,
also ich kenne deine Arbeitsmappe nicht, aber bei mir kommt keine Fehlermeldung - gleichgültig ob die Arbeitsmappe in einem Netzlaufwerk oder auf einer Festplatte gespeichert ist.


AW: Aktuellen Pfad in Variable einlesen
07.11.2008 07:37:45
Tino
Hallo,
ich mache dies immer so.
ist die Mappe wo der Code ausgeführt wird.
strPfad = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")


Ist die Mappe die zum Zeitpunkt aktiv ist bzw. die die Du sehen kannst

strPfad = IIf(Right$(ActiveWorkbook.Path, 1) = "\", ActiveWorkbook.Path, ActiveWorkbook.Path & "\")


Gruß Tino

Anzeige
AW: Aktuellen Pfad in Variable einlesen
07.11.2008 09:08:00
Daniel
Hallo Tino,
das war genau das was ich gesucht habe!
Vielen Dank!
Gruss
Daniel
;
Anzeige
Anzeige

Infobox / Tutorial

Aktuellen Pfad in VBA-Variable einlesen


Schritt-für-Schritt-Anleitung

Um den aktuellen Pfad in VBA zu speichern, kannst Du den folgenden Code verwenden:

Dim strPfad As String
strPfad = ThisWorkbook.Path

Dieser Code liest den Pfad der Arbeitsmappe, in der das Makro ausgeführt wird, aus und speichert ihn in der Variable strPfad. So kannst Du den vba aktuellen pfad problemlos für dein Makro verwenden.

Falls Du sicherstellen möchtest, dass der Pfad immer mit einem Backslash endet, kannst Du den folgenden Code verwenden:

strPfad = IIf(Right$(ThisWorkbook.Path, 1) = "\", ThisWorkbook.Path, ThisWorkbook.Path & "\")

Dieser Code prüft, ob das letzte Zeichen des Pfads ein Backslash ist und fügt gegebenenfalls einen hinzu.


Häufige Fehler und Lösungen

Fehler 1004: Wenn Du die Fehlermeldung "1004" erhältst, könnte dies daran liegen, dass die Arbeitsmappe nicht korrekt gespeichert wurde oder sich nicht im richtigen Verzeichnis befindet. Stelle sicher, dass die Datei gespeichert ist, bevor Du den excel vba aktuellen pfad auslesen-Befehl ausführst.

Falscher Pfad: Wenn der Pfad nicht korrekt ist, überprüfe, ob Du das richtige Arbeitsbuch verwendest. Du kannst ActiveWorkbook.Path verwenden, um den Pfad der gerade aktiven Arbeitsmappe auszulesen:

strPfad = IIf(Right$(ActiveWorkbook.Path, 1) = "\", ActiveWorkbook.Path, ActiveWorkbook.Path & "\")

Alternative Methoden

Eine alternative Methode, um den aktuellen Pfad in eine Variable zu speichern, ist die Verwendung des Application-Objekts. Mit folgendem Code kannst Du den Pfad der aktuellen Datei auslesen:

strPfad = Application.ActiveWorkbook.Path

Diese Methode funktioniert ähnlich wie ThisWorkbook.Path, ist jedoch nützlich, wenn Du den Pfad der gerade aktiven Datei benötigst.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du den aktuellen Pfad in verschiedenen Szenarien verwenden kannst:

  1. Daten importieren: Du kannst den Pfad verwenden, um Daten aus einer Datei im gleichen Verzeichnis zu importieren:

    Workbooks.Open strPfad & "Daten.xlsx"
  2. Datei speichern: Du kannst den Pfad auch nutzen, um eine Datei im aktuellen Verzeichnis zu speichern:

    ActiveWorkbook.SaveAs Filename:=strPfad & "Ergebnisse.xlsx"
  3. Daten exportieren: Wenn Du Daten in eine Textdatei schreiben möchtest, kannst Du den Pfad ebenfalls verwenden:

    Open strPfad & "Export.txt" For Output As #1
    Print #1, "Deine Daten hier"
    Close #1

Tipps für Profis

  • Vermeidung von Hardcodierung: Vermeide es, Pfade hartkodiert im Code zu speichern. Nutze immer ThisWorkbook.Path, um die Flexibilität zu erhöhen, besonders wenn Du mit mehreren Benutzern arbeitest.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um sicherzustellen, dass Dein Makro auch bei ungültigen Pfaden nicht abstürzt. Verwende On Error Resume Next, um Fehler zu ignorieren und On Error GoTo 0, um die Fehlerbehandlung zu beenden.
  • Dokumentation: Kommentiere Deinen Code gut, damit andere (oder Du selbst in der Zukunft) schnell verstehen, was der Code macht, besonders beim vba pfad der aktuellen datei.

FAQ: Häufige Fragen

1. Wie kann ich den Pfad in einer anderen Datei verwenden? Du kannst den gespeicherten Pfad einfach an andere Makros übergeben oder in anderen Modulen verwenden, indem Du die Variable global deklarierst.

2. Was mache ich, wenn ich den Pfad nicht finden kann? Stelle sicher, dass die Datei gespeichert ist. Wenn Du die Datei von einem Netzlaufwerk öffnest, überprüfe auch die Berechtigungen für den Zugriff auf den Pfad.

3. Kann ich den Pfad eines Ordners auswählen? Ja, Du kannst ein Dialogfeld verwenden, um den Benutzer einen Ordner auswählen zu lassen. Verwende dazu Application.FileDialog(msoFileDialogFolderPicker).

4. Funktioniert das auch in älteren Excel-Versionen? Ja, die oben genannten Methoden sind in den meisten Excel-Versionen verfügbar, die VBA unterstützen. Achte darauf, dass die genutzten Objekte und Methoden in Deiner spezifischen Version vorhanden sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige