Textdateien Spaltenweise

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von vba-noob111.

    Textdateien Spaltenweise

    Hallo zusammen,

    Ich würde gerne viele Textdateien (Endung: ".mer") spaltenweise in Excel einlesen.

    ich habe mir einen Code zusammengebastelt allerdings werden die Dateien dort Zeile für Zeile eingefügt.

    Was müsste ich ändern, um die Dateien nebeneinander in Spalten zu erhalten.

    Hier der Code
    Sub ImportText()
    '
    ' ImportText Makro
    Dim Pfad, Datei
    Dim QueryTab As QueryTable, varSource
    Dim wks As Worksheet
    '
    Pfad = "C:\Users\\"
    ' Pfad = "C:\users\Public\Test\Archiv\"
    Dim ZelleZiel As Range

    Datei = Dir(Pfad & "*.mer")

    Set wks = ActiveSheet

    Set ZelleZiel = wks.Range("A1") '1. Einfügezelle

    Do Until Datei = ""

    With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;" & Pfad & Datei, Destination:=ZelleZiel)
    .Name = Left(Datei, Len(Datei) - 4)
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = False
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 1252
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = False
    .TextFileSemicolonDelimiter = True
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    .TextFileColumnDataTypes = Array(2, 1, 1, 2, 1, 1, 1, 1, 1)
    .Refresh BackgroundQuery:=False
    varSource = .Connection
    End With

    'Verbindung der Text-Abfrage wieder löschen
    varSource = Mid(varSource, 6)
    varSource = Left(varSource, Len(varSource) - 4)
    varSource = Mid(varSource, InStrRev(varSource, "\") + 1)
    ThisWorkbook.Connections(varSource).Delete

    'Nächste Zielzelle
    With wks
    Set ZelleZiel = .Cells(.UsedRange.Row + .UsedRange.Rows.Count, 1)
    End With
    Datei = Dir
    Loop
    End Sub

    Danke im Voraus,
    LG :)
    Wenn Du schon fremden Code hernimmst, dann nenn bitte auch die Quelle. Sonst gehen wir davon aus, dass Du schon sehr viel kannst und geben Dir Tipps, die aber effektiv über Deinem Wissenstand sind. Vermutete Quelle: herber.de

    Du musst die Anfangszielzelle richtig setzen. Ich würd Dir ja die passende Codezeile nennen, aber dazu wäre es nötig, dass Du Deinen Beitrag editierst und CodeTags verwendest
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo,

    Ja den Code habe ich gefunden bei herber.de und angepasst.

    Quellcode

    1. Sub ImportText()
    2. '
    3. ' ImportText Makro
    4. Dim Pfad, Datei
    5. Dim QueryTab As QueryTable, varSource
    6. Dim wks As Worksheet
    7. '
    8. Pfad = "C:\Users\\"
    9. ' Pfad = "C:\users\Public\Test\Archiv\"
    10. Dim ZelleZiel As Range
    11. Datei = Dir(Pfad & "*.mer")
    12. Set wks = ActiveSheet
    13. Set ZelleZiel = wks.Range("A1") '1. Einfügezelle
    14. Do Until Datei = ""
    15. With ActiveSheet.QueryTables.Add(Connection:= _
    16. "TEXT;" & Pfad & Datei, Destination:=ZelleZiel)
    17. .Name = Left(Datei, Len(Datei) - 4)
    18. .FieldNames = True
    19. .RowNumbers = False
    20. .FillAdjacentFormulas = False
    21. .PreserveFormatting = True
    22. .RefreshOnFileOpen = False
    23. .RefreshStyle = xlInsertDeleteCells
    24. .SavePassword = False
    25. .SaveData = False
    26. .AdjustColumnWidth = True
    27. .RefreshPeriod = 0
    28. .TextFilePromptOnRefresh = False
    29. .TextFilePlatform = 1252
    30. .TextFileStartRow = 1
    31. .TextFileParseType = xlDelimited
    32. .TextFileTextQualifier = xlTextQualifierDoubleQuote
    33. .TextFileConsecutiveDelimiter = False
    34. .TextFileTabDelimiter = False
    35. .TextFileSemicolonDelimiter = True
    36. .TextFileCommaDelimiter = False
    37. .TextFileSpaceDelimiter = False
    38. .TextFileColumnDataTypes = Array(2, 1, 1, 2, 1, 1, 1, 1, 1)
    39. .Refresh BackgroundQuery:=False
    40. varSource = .Connection
    41. End With
    42. 'Verbindung der Text-Abfrage wieder löschen
    43. varSource = Mid(varSource, 6)
    44. varSource = Left(varSource, Len(varSource) - 4)
    45. varSource = Mid(varSource, InStrRev(varSource, "\") + 1)
    46. ThisWorkbook.Connections(varSource).Delete
    47. 'Nächste Zielzelle
    48. With wks
    49. Set ZelleZiel = .Cells(.UsedRange.Row + .UsedRange.Rows.Count, 1)
    50. End With
    51. Datei = Dir
    52. Loop
    53. End Sub