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

ChDrive/ChDir

Forumthread: ChDrive/ChDir

ChDrive/ChDir
01.07.2005 14:26:42
Korl
Hallo,
für den Aufruf einer Datei lasse ich mich über Makro immer zu einem bestimmten Ordner führen um dort eine Datei wählen zu können.
Es funktioniert mit dieser Schreibweise im Code:
z.B.
Dim Pfad As String
Pfad = "C:\test\test"
ChDrive Left(Pfad, 1)
ChDir Pfad

Mein Wunsch wäre nun, diese Pfadangabe in einer Zelle im Tabellenblatt anzulegen.
Ich habe versucht mit z.B
Pfad = Workbooks(test).Worksheets("Tabelle1").Range("A1")
Leider funktioniert es nicht.
Geht diese Variante überhaupt?
Gruß Korl
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: ChDrive/ChDir
01.07.2005 14:34:04
Ceci
Hallo Korl, versuche
Pfad = Workbooks("Test").Worksheets("Tabelle1").cells(1,1).value
mfg Cäzilia
AW: ChDrive/ChDir
01.07.2005 15:08:29
Korl
Hallo Cäzilia,
danke für Deine Unterstützung. Diese Schreibweise hatte ich auch schon versucht, funktioniert aber leider nicht.
"Index außerhalb des gültigen Bereichs"
Gruß Korl
Anzeige
AW: ChDrive/ChDir
01.07.2005 17:33:34
marko_ti
"Index außerhalb des gültigen Bereichs"
hört sich an als würde Dein Workbook nicht "Test" heißen oder Deine Tabelle nicht "Tabelle1". Check das mal. Ansonsten:

Sub test()
Pfad = ActiveSheet.Cells(1, 1).Value
End Sub

greift auf das beim Lauf aktuelle Sheet zu.
Gruß Marko
Anzeige
AW: ChDrive/ChDir
01.07.2005 20:07:53
Korl
Hallo Markus,
Danke für Deinen ausdrücklichen Hinweis. Mit Deiner Schreibweise funktionierte es.
Ich konnte nun auch meinen Fehler lokalisieren. Gestern Abend hatte ich im Datei-Explorer in den Ordneroptionen "Erweiterungen bei bekannten Dateitypen ausblenden" den Haken heraus genommen um Veränderungen an einem Format zu nehmen.
Darum die Fehlermeldung bei mir. Ich habe nun das Format "Test.xls" dazu geschrieben.
Pfad = Workbooks("Test.xls").Worksheets("Tabelle1").Range("A1").Value
Nun funktioniert auch diese Variante.
Nochmal ein Dankeschön an Dir und auch Cäzilia.
Gruß Korl
Anzeige
;
Anzeige

Infobox / Tutorial

ChDrive und ChDir in Excel VBA effizient nutzen


Schritt-für-Schritt-Anleitung

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

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf einen der Einträge im Projektfenster, wähle Einfügen und dann Modul.

  3. Füge den folgenden Code ein:

    Sub SetzePfad()
       Dim Pfad As String
       Pfad = Workbooks("Test.xls").Worksheets("Tabelle1").Range("A1").Value
       ChDrive Left(Pfad, 1)
       ChDir Pfad
    End Sub
  4. Stelle sicher, dass die Zelle A1 in Tabelle1 den vollständigen Pfad enthält, z.B. C:\test\test.

  5. Führe das Makro aus: Drücke F5 oder gehe zu Ausführen > Sub/UserForm ausführen, um das Makro zu starten.


Häufige Fehler und Lösungen

  • Fehler: "Index außerhalb des gültigen Bereichs"
    Lösung: Überprüfe den Namen des Workbooks oder des Arbeitsblatts. Stelle sicher, dass die Namen exakt übereinstimmen, z.B. Test.xls und Tabelle1.

  • Fehler: ChDrive funktioniert nicht
    Lösung: Stelle sicher, dass der Pfad in Zelle A1 korrekt ist und dass die Laufwerksbuchstaben vorhanden sind.


Alternative Methoden

Eine alternative Methode, um den Pfad zu setzen, wäre, direkt auf das aktive Arbeitsblatt zuzugreifen, anstatt eine spezifische Datei zu referenzieren. Nutze:

Sub SetzeAktivenPfad()
    Dim Pfad As String
    Pfad = ActiveSheet.Cells(1, 1).Value
    ChDrive Left(Pfad, 1)
    ChDir Pfad
End Sub

Dies ermöglicht die Verwendung des aktuell aktiven Blattes, was flexibler sein kann, wenn Du häufig zwischen Blättern wechselst.


Praktische Beispiele

  • Beispiel 1: Einfache Verwendung von ChDrive und ChDir

    Sub Beispiel()
       Dim Pfad As String
       Pfad = "C:\BeispielOrdner"
       ChDrive Left(Pfad, 1)
       ChDir Pfad
    End Sub
  • Beispiel 2: Dynamischer Pfad aus einer Zelle

    Sub DynamischerPfad()
       Dim Pfad As String
       Pfad = Workbooks("MeineDatei.xls").Worksheets("Daten").Range("B2").Value
       ChDrive Left(Pfad, 1)
       ChDir Pfad
    End Sub

Tipps für Profis

  • Vermeide harte Kodierungen von Dateinamen und Pfaden, indem Du sie in Zellen speicherst. So bleibt Dein VBA-Code flexibel und leicht anpassbar.
  • Nutze Fehlerbehandlungsroutinen, um mögliche Laufzeitfehler abzufangen und dem Benutzer klare Fehlermeldungen anzuzeigen. Zum Beispiel:

    On Error GoTo Fehler
    ' Dein Code hier
    Exit Sub
    Fehler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

1. Kann ich auch relative Pfade verwenden?
Ja, Du kannst relative Pfade verwenden, allerdings musst Du sicherstellen, dass der Ausgangspunkt bekannt ist.

2. Warum funktioniert ChDrive nicht?
ChDrive benötigt den Laufwerksbuchstaben, also stelle sicher, dass der Pfad korrekt ist und das Laufwerk existiert.

3. Was mache ich, wenn ich mehrere Dateien in einem Ordner habe?
Du kannst eine Schleife verwenden, um durch alle Dateien in einem Ordner zu iterieren und die benötigte Datei zu verarbeiten.

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