Microsoft Excel

Herbers Excel/VBA-Archiv

VBA Code Text Dateien

Betrifft: VBA Code Text Dateien von: Igor Maier
Geschrieben am: 22.10.2014 12:13:22

Hallo Forenmitglieder,

nochmals eine kurze Frage. Ich möchte mehrere txt. Dateien in excel einlesen. Dazu habe ich folgenden Code gefunden:

  • Sub einlesen()
        Z = Sheets(1).UsedRange.Rows.Count
        d = Dir("C:\Users\AMD\Desktop\Test\")
        
            Do While d <> ""
                Open "C:\Users\AMD\Desktop\Test\" & d For Input As #1
                Do While Not EOF(1)
                Line Input #1, temp
                Sheets(1).Cells(Z, 1) = Replace(temp, vbTab, ";")
                Z = Z + 1
            Loop
          Close #1
        d = Dir
    Loop
        
        For j = 1 To Z
        Text = Split(Cells(j, 1), ";")
        For i = 0 To UBound(Text)
        Cells(j, i + 1) = Text(i)
        Next
        Next
    
    End Sub


  • Hierzu zwei Fragen:
    1.
    Ich möchte kein fixen Verweis ("C:\Users\AMD\Desktop\Test\") sondern immer die Text Dateien einlesen, die sich im selben Ordner befinden wie das Excel-Sheel indem ich es einlesen möchte

    2. Wenn ich den Code oben ausführe und die Daten lösche und den Code erneut ausführe dann fängt er nicht die Daten in der ersten Zelle einzulesen, sondern fängt beim letzten Platz vom ersten Durchlauf an.

    Kann mir jemand hier vielleicht helfen?

    Danke Igor

      

    Betrifft: AW: VBA Code Text Dateien von: Klaus M.vdT.
    Geschrieben am: 22.10.2014 12:24:04

    Hallo Igor,
    zu 1: mit "ThisWorkbook.Path" bekommst du den Pfad deiner Exceldatei. Den kannst du in einer Variablen speichern und damit weiter machen:

    Sub einlesen()
    Dim MeinPfad As String
    MeinPfad = ThisWorkbook.Path & "\"
    
        Z = Sheets(1).UsedRange.Rows.Count
        d = Dir(MeinPfad)
        
            Do While d <> ""
                Open MeinPfad & d For Input As #1
                Do While Not EOF(1)
                Line Input #1, temp
                Sheets(1).Cells(Z, 1) = Replace(temp, vbTab, ";")
                Z = Z + 1
            Loop
          Close #1
        d = Dir
    Loop
        
        For j = 1 To Z
        Text = Split(Cells(j, 1), ";")
        For i = 0 To UBound(Text)
        Cells(j, i + 1) = Text(i)
        Next
        Next
    
    End Sub
    zu 2: keine Ahnung, darum lasse ich den Thread offen!

    Grüße,
    Klaus M.vdT.


      

    Betrifft: AW: VBA Code Text Dateien von: PeterK
    Geschrieben am: 22.10.2014 12:42:07

    Hallo

    ad 1) Bitte aufpassen: Dein Makro findet auch die Excel Datei und wird versuchen sie einzulesen: überpüfen ob sich um eine TextDatei handelt oder ob der File das Excel ist

    ad 2) Z wird mit usedRange initialisiert. Beim löschen des Inhaltes wird der UsedRange nicht automatisch zurückgesetzt. Wenn Du bei jedem Durchlauf des Makros mit der ersten Zeile beginnen willst setze einfach Z=1


     

    Beiträge aus den Excel-Beispielen zum Thema "VBA Code Text Dateien"