Werte von .txt in Excel importieren (VBA)?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Man könnte beide Vorschläge kombinieren. Das bedeutet, du nutzt VBA, um die CSV-Datei zu öffnen.

Excel kann sehr gut mit CSV-Dateien umgehen, sodass du direkt mit Excelfunktionalitäten auf der Datei operieren kannst. Du kannst die Datei öffnen, einen Filtern anwenden, das Ergebnis kopieren und anschließend die CSV-Datei wieder schließen.

Sub FilterImportDatei()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim r As Range
    
    Set wb = Application.Workbooks.Open("F:\scripts\GF\Test\csv_import.csv")
    Set ws = wb.Sheets(1)
    Set r = ws.[A:A]
    
    Call r.TextToColumns([A:A], xlDelimited, xlTextQualifierNone, False, False, True)
    ws.UsedRange.AutoFilter
    ws.UsedRange.AutoFilter field:=1, Criteria1:="500"
    ws.UsedRange.Copy Tabelle1.[A1]
    wb.Close False
End Sub
Woher ich das weiß:Berufserfahrung – Programmierer

Hier ein Makro:

myFilePath musst du halt noch anpassen an deine Datei.

Sub Einlesen()

    Const TristateTrue = -1, ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso, sourceFile, myFilePath
    Dim r, c
    Dim line As String
    Dim fields() As String
    r = 1
    myFilePath = "c:\Daten.txt" '<-- hier
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set sourceFile = fso.OpenTextFile(myFilePath, ForReading, TristateTrue)
    
    While Not sourceFile.AtEndOfStream
        line = sourceFile.ReadLine
        fields = Split(line, ";")
        If fields(0) = "500" Then
            For c = 0 To UBound(fields)
                Sheets("Tabelle1").Cells(r, c + 1) = fields(c)
            Next
        r = r + 1
        End If
    Wend
    sourceFile.Close

End Sub


Woher ich das weiß:eigene Erfahrung

MausBlauDX 
Beitragsersteller
 24.09.2020, 14:14

Danke :)

2

Ich würde den gesamten Datenbestand einlesen und dann in Excel filtern bzw. mit VBA die nicht benötigten Zeilen löschen. Wichtig ist, dass die Schleife von der letzten Zeile aufwärts zu ersten laufen muss.

Wie viele Datensätze sind es denn?


MausBlauDX 
Beitragsersteller
 24.09.2020, 10:07

Ja würde ich ja auch so machen, jedoch ist das eben die Aufgabe (Es nicht so zu machen) XD

1