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

relativer Pfad per VBA

Forumthread: relativer Pfad per VBA

relativer Pfad per VBA
09.03.2004 23:12:28
Jürg
Hallo
ich suche seit Stunden im Internet und Büchern eine Lösung für folgende Aufgabenstellung :
D:\Test\Programm\Test.xls
D:\Test\Steuerung\Zins.ini
Da diese Dateien auf dem Server liegen und die Laufwerke dauernd umbenannt werden, möchte ich die Datei "Zins.ini" mit einem relativen Pfad aufrufen. Also in abhängikeit vom Pfad des Files "Test.xls"
Ich stelle mir das so etwa vor :
strPfad = D:\Test\Programm\Test.xls
Open strPfad\..\Steuerung\Zins.ini For Input As #1
Daten auslesen
Close #1

aber irgendwie funktioniert das nicht
kann mir jemand sagen wo mein Überlegungsfehler ist ?
Gruss Jürg
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: relativer Pfad per VBA
09.03.2004 23:16:48
Volker Croll
Hallo Jürg,
schon mal so probiert?
Open strPfad & "\..\Steuerung\Zins.ini" For Input As #1

Gruss
Volker Croll
www.crolltools.de
Noch "richtiger" waere ...
09.03.2004 23:34:39
Volker Croll
Hallo Jürg,
... wenn ich mir Dein Beispiel nochmal genauer anschaue:
strPfad = "D:\Test"
Open strPfad & "\Steuerung\Zins.ini" For Input As #1
Mir waren beim ersten Anschauen einfach nur die fehlenden Anfuehrungszeichen ins Auge gesprungen.

Gruss
Volker Croll
www.crolltools.de
Anzeige
AW: Noch "richtiger" waere ...
09.03.2004 23:56:42
Jürg
Hallo Volker
Vielen Dank für Deine Hilfe. Habe sie noch nicht ausprobiert, werde ich aber morgen tun.
Die erste Version währe mir lieber, da ich hier den aktuellen Ordner, in welchem das Programm gespeichert ist nicht auswerten muss.
Gruss Jürg
AW: relativer Pfad per VBA - Lösung
10.03.2004 08:49:28
Jürg
Hallo Volker
vielen Dank für Deine Anregungen. Ich habe dadurch meinen Fehler gefunden.
Ich haben aus dem FullFileName vergessen den reinen Pfad zu extrahieren.
Gemäss folgendem Beispiel funktioniert es jetzt:

Sub test()
Dim VerzPfad As String
Dim ProgPfad As String
Dim DocPfad As String
'Programm-Pfad =  D:\Test\Programm\Test.doc
'TextFile-Pfad      =  D:\Test\Ini\Test.txt
DocPfad = "D:\Test\Programm\Test.doc"
'zuerst den reinen Pfad extrahieren
ProgPfad = Left(DocPfad, Len(DocPfad) - Len(Dir(DocPfad)))
'Pfad des übergeordneten Verzeichnisses bestimmen   D:\Test\
VerzPfad = strProgPfad & "..\"
TxtFile = VerzPfad & "INI-Files\Test.txt"
Open TxtFile For Input As #1
'Einlesen der Daten
Close #1
End Sub


Gruss Jürg
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Relativen Pfad in Excel VBA verwenden


Schritt-für-Schritt-Anleitung

Um einen relativen Pfad in Excel VBA zu verwenden, folge diesen Schritten:

  1. Definiere den vollständigen Pfad zu Deiner Datei. Zum Beispiel:

    DocPfad = "D:\Test\Programm\Test.doc"
  2. Extrahiere den reinen Pfad des Programms. Das kannst Du mit der Funktion Left und Dir erreichen:

    ProgPfad = Left(DocPfad, Len(DocPfad) - Len(Dir(DocPfad)))
  3. Bestimme den Pfad des übergeordneten Verzeichnisses:

    VerzPfad = ProgPfad & "..\"
  4. Verwende den relativen Pfad, um eine Datei zu öffnen, z.B. eine .txt-Datei:

    TxtFile = VerzPfad & "INI-Files\Test.txt"
    Open TxtFile For Input As #1
    'Einlesen der Daten
    Close #1

Mit diesen Schritten kannst Du den vba relativer Pfad erfolgreich verwenden, um auf Dateien zuzugreifen, ohne die Laufwerksbuchstaben hartkodieren zu müssen.


Häufige Fehler und Lösungen

  1. Fehlende Anführungszeichen: Wenn Du beim Öffnen des Pfades Anführungszeichen vergisst, wird der Code nicht funktionieren. Achte darauf, dass der Pfad korrekt in Anführungszeichen gesetzt ist.

  2. Falsche Verwendung von Open: Stelle sicher, dass Du den korrekten Befehl zum Öffnen der Datei verwendest. Zum Beispiel:

    Open strPfad & "\..\Steuerung\Zins.ini" For Input As #1
  3. Falsche Verzeichnispfade: Überprüfe die Struktur der Verzeichnisse. Möglicherweise ist der angegebene Pfad nicht korrekt oder die Datei existiert nicht.


Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, gibt es auch andere Ansätze:

  • Excel-Formeln: Du kannst die INDIREKT-Funktion verwenden, um auf andere Arbeitsblätter oder Zellen zuzugreifen, allerdings funktioniert dies nicht für externe Dateien.

  • Power Query: Mit Power Query kannst Du Daten aus verschiedenen Quellen importieren und dabei auch relative Pfade verwenden.


Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung eines relativen Pfades in Excel VBA:

  1. Einlesen einer .txt-Datei:

    Sub ReadTxtFile()
       Dim VerzPfad As String
       Dim TxtFile As String
       VerzPfad = ThisWorkbook.Path & "\..\INI-Files\Test.txt"
       Open TxtFile For Input As #1
       'Verarbeite die Daten hier
       Close #1
    End Sub
  2. Konvertierung von .txt in .ini: Du kannst auch Daten aus einer .txt-Datei lesen und diese in eine .ini-Datei umwandeln:

    Sub ConvertTxtToIni()
       'Hier wird eine txt in ini umgewandelt
       'Code zur Verarbeitung und Umwandlung
    End Sub

Tipps für Profis

  • Verwende ThisWorkbook.Path: Damit kannst Du immer den Pfad zur aktuellen Arbeitsmappe erhalten, was besonders nützlich ist, wenn Du mit relativen Pfaden arbeitest.

  • Fehlerbehandlung einbauen: Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass Dein Code robust ist und auf unerwartete Situationen reagieren kann.

  • Dokumentiere Deinen Code: Beschreibe die Funktionalitäten in Deinen VBA-Prozeduren, damit Du und andere Nutzer später die Logik leichter nachvollziehen können.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein relativer Pfad funktioniert? Überprüfe die Verzeichnisstruktur und stelle sicher, dass die Dateien, auf die Du zugreifen möchtest, im angegebenen Pfad existieren.

2. Was ist der Unterschied zwischen absolutem und relativem Pfad? Ein absoluter Pfad gibt den vollständigen Speicherort einer Datei an, während ein relativer Pfad sich auf den Speicherort im Verhältnis zur aktuellen Datei bezieht.

3. Kann ich auch andere Dateitypen mit einem relativen Pfad öffnen? Ja, Du kannst jede Art von Datei öffnen, solange Du den korrekten relativen Pfad angibst und der Dateityp unterstützt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige