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

Forumthread: Datei öffnen Dialog für Import aus einer txt-Datei

Datei öffnen Dialog für Import aus einer txt-Datei
22.05.2013 18:28:58
Bubble
Hallo liebe Exelperten,
mit folgendem im Makrorecorder aufgezeichneten Code habe ich eine txt-Datei in einen vorgegebenen Bereich eines Arbeitsblattes importiert. Die Pfadangabe bezieht dabei auf eine bestimmte Datei in einem bestimmten Ordner. Zuerst wird der Bereich für den Import gelöscht, danach die Datei geöffnet und die Werte in die Zellen eingetragen.
Sub Diff_import()
' Diff_import Makro
' Überstunden aus dem letzten Monat importieren.
Range("A4:G109").Select
Selection.ClearContents
Range("A4").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;E:\Eigene Dateien\Eigene Dokumente\Test\test.txt", _
Destination:=Range("$A$4"))
.Name = "test_import"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Range("G13").Select
End SUB

Meine Frage ist nun, kann man dieses Makro so umbauen, das ein Datei öffnen Dialog erscheint, wo man die zu importierende txt-Datei auswählen kann. Ein Traum wäre es, wenn in diesem Datei öffnen Dialog der Pfad voreingestellt ist, in dem sich auch die Exelmappe befindet, aus der heraus ich ich dieses Makro starte. Ich habe etwas mit Application.GetOpenFilename.("Textdateien (*.txt), *.txt") experimentiert, aber leider ohne Erfolg. Da sich die verschiedenen txt-Dateien und die Exelmappe immer im gleichen Ordner befinden, dacht ich auch an ThisWorkbook.Path & "\" aber ich habe es nicht unter einen Hut bekommen.
Danke für Eure Mühe
Bubble

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei öffnen Dialog für Import aus einer txt-Datei
22.05.2013 18:48:27
Rudi
Hallo,
Sub Diff_import()
' Diff_import Makro
' Überstunden aus dem letzten Monat importieren.
Dim sFile As String
Range("A4:G109").ClearContents
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.InitialFileName = ActiveWorkbook.Path & "\"
.Filters.Add "TextFiles", "*.txt", 1
.FilterIndex = 1
If .Show = -1 Then
sFile = .SelectedItems(1)
End If
End With
If sFile  "" Then
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & sFile, Destination:=Range("$A$4"))
.Name = "test_import"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End If
Range("G13").Select
End Sub

Gruß
Rudi

Anzeige
AW: Datei öffnen Dialog für Import aus einer txt-Datei
22.05.2013 19:49:28
Bubble
Hallo Rudi,
funktioniert genauso wie ich mir das gewünscht habe.
Vielen Danke für Deine Mühe und einen schönen Abend wünsche ich.
Bubble
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datei-Import aus .txt-Dateien in Excel automatisieren


Schritt-für-Schritt-Anleitung

Um eine .txt-Datei in Excel zu importieren und dabei einen Datei-Öffnen-Dialog zu nutzen, kannst du den folgenden VBA-Code verwenden. Dieser Code öffnet den Dialog, in dem du die gewünschte .txt-Datei auswählen kannst. Der Pfad ist standardmäßig auf den Ordner deiner Excel-Datei eingestellt.

  1. Öffne Excel und gehe auf "Entwicklertools" > "Visual Basic".
  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > "Einfügen" > "Modul").
  3. Kopiere den folgenden Code in das Modul:
Sub Diff_import()
    Dim sFile As String
    Range("A4:G109").ClearContents
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .InitialFileName = ThisWorkbook.Path & "\"
        .Filters.Add "TextFiles", "*.txt", 1
        .FilterIndex = 1
        If .Show = -1 Then
            sFile = .SelectedItems(1)
        End If
    End With
    If sFile <> "" Then
        With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & sFile, Destination:=Range("$A$4"))
            .Name = "test_import"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = False
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 1252
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
    End If
    Range("G13").Select
End Sub
  1. Schließe den VBA-Editor und führe das Makro über "Entwicklertools" > "Makros" aus.

Häufige Fehler und Lösungen

  • Fehler: Der Datei-Öffnen-Dialog öffnet sich nicht.

    • Lösung: Stelle sicher, dass die Entwicklertools-Option in Excel aktiviert ist.
  • Fehler: Die .txt-Datei wird nicht geladen.

    • Lösung: Überprüfe den Pfad zur .txt-Datei und stelle sicher, dass der Dateiname korrekt ist.
  • Fehler: Importierte Daten erscheinen nicht korrekt.

    • Lösung: Überprüfe die Trennzeichen in der .txt-Datei. Möglicherweise musst du das .TextFileTabDelimiter oder andere Trennzeichen anpassen.

Alternative Methoden

Wenn du die .txt-Datei nicht über VBA importieren möchtest, kannst du auch die Excel-Funktion "Daten importieren" verwenden:

  1. Gehe zu "Daten" > "Daten abrufen" > "Aus Datei" > "Aus Text/CSV".
  2. Wähle die .txt-Datei aus und folge den Anweisungen im Dialog.

Diese Methode erfordert keinen VBA-Code, ist jedoch weniger flexibel in Bezug auf automatisierte Prozesse.


Praktische Beispiele

  • Beispiel 1: Du möchtest eine .txt-Datei mit Monatsdaten importieren. Der oben genannte VBA-Code importiert die Daten ab der Zelle A4 und löscht vorherige Inhalte.

  • Beispiel 2: Um mehrere .txt-Dateien zu importieren, kannst du die Logik des Codes anpassen, um eine Schleife zu integrieren, die durch alle Dateien eines bestimmten Ordners iteriert.


Tipps für Profis

  • Verwende Option Explicit: Setze zu Beginn jedes Moduls Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Erweiterte Filter: Du kannst die Filteroptionen im VBA-Code anpassen, um spezifischere .txt-Dateien zu importieren. Zum Beispiel kannst du zusätzliche Filter für .csv-Dateien hinzufügen.

  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um sicherzustellen, dass dein Makro auch bei unerwarteten Eingaben funktioniert.


FAQ: Häufige Fragen

1. Was ist eine .txt-Datei?
Eine .txt-Datei ist eine einfache Textdatei, die unformatierte Daten speichert. Sie kann mit jedem Texteditor geöffnet werden.

2. Wie öffne ich eine .txt-Datei in Excel?
Du kannst eine .txt-Datei in Excel entweder über den Importdialog oder durch ein VBA-Makro öffnen, wie im obigen Abschnitt beschrieben.

3. Kann ich auch andere Dateiformate importieren?
Ja, du kannst auch andere Dateiformate wie .csv oder .xls importieren, indem du die Filteroptionen im VBA-Code anpasst oder die Excel-Importfunktionen nutzt.

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