Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Dateipfad mit Auswahl

Dateipfad mit Auswahl
27.01.2020 12:12:57
Michael
Hallo,
ich habe mal wieder ein Problemchen :)
Ich habe eine Excel-Datei in der ein Makro ausgeführt wird.
Dieses importiert eine Datei vom Laufwerk E wie folgt:
With ActiveSheet.QueryTables.Add(Connection:="TEXT;E:\Datei.LOG", _
das funktioniert auch alles super.
Jetzt möchte ich aber das nicht von dem Laufwerk e:\ die Datei.LOG importiert wird,
sondern zunächst eine Abfrage aus dem selben Verzeichnis in der meine Excel-Datei
liegt nach Ordnern geschaut wird die nach Datum benannt sind z. B. 27-01-2020 oder 25-01-2020 oder 18-02-2020
Ich bekomme also wenn mein Makro gestartet wird eine Frage: wählen sie aus folgenden Ordner:
27-01-2020 oder 25-01-2020 oder 18-02-2020
bei Auswahl geht er in den entsprechenden Ordner und öffnet z.B. \18-02-2020\Datei.LOG
und das Makro läuft weiter.
Bedeutet in jedem Ordner liegt eine Datei.LOG nur mit anderem Inhalt.
Würde mich über Feedback freuen.
Vielen Dank!
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateipfad mit Auswahl
27.01.2020 13:37:15
UweD
Hallo
so?
 Sub dsdsds() ' 
    Dim Dlg As FileDialog
    Dim FFile As String, Pfad As String
    Set Dlg = Application.FileDialog(msoFileDialogFolderPicker)
    
    'anpassen 
    FFile = "Datei.LOG"
    Dlg.InitialFileName = "E:\" 'oder ThisWorkbook.Path 'Welches Verzeichnis soll voreingestellt sein 
    
    
    
    If Dlg.Show = True Then
        Pfad = Dlg.SelectedItems(1) 'Der ausgewählte Pfad 
        Pfad = Pfad & IIf(Right(Pfad, 1) = "\", "", "\") 'ggf \ anhängen 
        
        If Dir(Pfad & FFile) <> "" Then 'prüfen, ob Datei da ist 
           MsgBox "Ist da"
           'Mach was damit 
           
           ' With ActiveSheet.QueryTables.Add(Connection:="TEXT;Pfad & FFile", 
           
           
        End If
    End If
End Sub

LG UweD
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dateipfad mit Auswahl in Excel VBA


Schritt-für-Schritt-Anleitung

Um einen Dateipfad in Excel VBA auszuwählen und dabei einen Ordner auszuwählen, kannst du den folgenden VBA-Code verwenden:

Sub DateipfadAuswaehlen()
    Dim Dlg As FileDialog
    Dim FFile As String, Pfad As String
    Set Dlg = Application.FileDialog(msoFileDialogFolderPicker)

    ' Datei, die im Ordner gesucht wird
    FFile = "Datei.LOG"
    Dlg.InitialFileName = ThisWorkbook.Path ' Setzt den Pfad der aktuellen Datei als Standard

    If Dlg.Show = True Then
        Pfad = Dlg.SelectedItems(1) ' Der ausgewählte Pfad
        Pfad = Pfad & IIf(Right(Pfad, 1) = "\", "", "\") ' Ggf. \ anhängen

        If Dir(Pfad & FFile) <> "" Then ' Überprüfen, ob die Datei existiert
            MsgBox "Datei gefunden"
            ' Hier kannst du mit der Datei arbeiten, z.B. importieren
            ' ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Pfad & FFile, ...)
        Else
            MsgBox "Datei nicht gefunden"
        End If
    End If
End Sub

Dieser Code öffnet einen Dialog, in dem du einen Ordner auswählen kannst. Nachdem du einen Ordner ausgewählt hast, prüft das Skript, ob die Datei.LOG in diesem Ordner vorhanden ist.


Häufige Fehler und Lösungen

  • Fehler: Datei nicht gefunden
    Lösung: Überprüfe den Pfad und stelle sicher, dass die Datei im ausgewählten Ordner vorhanden ist. Achte darauf, dass der Dateiname korrekt eingegeben ist.

  • Fehler: Dialog öffnet sich nicht
    Lösung: Stelle sicher, dass du die richtige Excel-Version verwendest, die VBA unterstützt. Der Code funktioniert ab Excel 2007.


Alternative Methoden

Eine alternative Methode, um einen Ordner auszuwählen, ist die Verwendung des Application.GetOpenFilename-Dialogs. Hierbei kannst du den Benutzer auffordern, eine Datei auszuwählen, und dann den Ordner ermitteln:

Sub DateiWählen()
    Dim Datei As Variant
    Datei = Application.GetOpenFilename("Textdateien (*.LOG), *.LOG", , "Wähle eine LOG-Datei")

    If Datei <> False Then
        MsgBox "Gewählte Datei: " & Datei
        ' Hier kannst du den Ordner aus der Datei extrahieren
    End If
End Sub

Praktische Beispiele

  1. Ordnerauswahl und Dateiimport:
    Nutze den ersten Code, um den Benutzer einen Ordner auswählen zu lassen und dann eine Datei zu importieren. Dies ist nützlich, wenn du regelmäßig Daten aus verschiedenen Ordnern importierst.

  2. Verzeichnis auswählen:
    Wenn du mehrere Ordner hast, die nach Datum benannt sind, kannst du den Code anpassen, um nur Ordner anzuzeigen, die einem bestimmten Datumsformat entsprechen.


Tipps für Profis

  • Verwende ThisWorkbook.Path: Nutze ThisWorkbook.Path, um den Pfad der aktuellen Datei zu erhalten. Dadurch wird die Benutzererfahrung verbessert, da der Dialog direkt in dem Verzeichnis öffnet, wo die Excel-Datei gespeichert ist.

  • Fehlerbehandlung: Implementiere Fehlerbehandlung mit On Error Resume Next, um unerwartete Fehler elegant zu handhaben.

  • Verwende Option Explicit: Füge Option Explicit am Anfang deiner Module hinzu. So stellst du sicher, dass alle Variablen deklariert werden, was die Fehlersuche erleichtert.


FAQ: Häufige Fragen

1. Wie wähle ich einen Ordner in Excel VBA aus?
Du kannst die FileDialog-Klasse verwenden, um einen Ordner auszuwählen. Der dazugehörige Code findest du oben in der Schritt-für-Schritt-Anleitung.

2. Wie kann ich den Pfad der aktuellen Datei in VBA verwenden?
Verwende ThisWorkbook.Path, um den Pfad der Excel-Datei zu erhalten, die das Makro ausführt. Dies ist besonders nützlich, wenn du relative Pfade verwenden möchtest.

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