Text Datei vor einlesen in Excel Bereinigen

  • Excel

    Text Datei vor einlesen in Excel Bereinigen

    Hallo Liebe Excel Cracks,

    ich möchte gern eine txt-Datei einlesen. Diese weisst aber unerwünschte Zeilenumbrüche auf, die vor dem einlesen bereinigt werden müssen. Mit meinem Makro kann ich die Datei einlesen und auch an der gewünschten Stelle Spliten.
    Wie aber kann ich die txt-Datei vorher bereinigen, das diese ohne den unerwünschten Zeilenumbrüchen eingelesen wird. Zur Verdeutlichung habe ich die txt-Datei manuell so bereinigt, das diese korrekt einlesen werden kann, ich weiß also wie sie aussehen muß.

    - WeeklyReportChangDescrObj_org =>ausgelesene txt-Datei
    - WeeklyReportChangDescrObj_bereinigt =>bereinigte txt-Datei

    Die Liste wird auch in regelmäßigen Abständen aktualsiert werden müssen. Wobei sich in der Spalte Object keine Duplicate ergeben werden. Alle Objects die in der Spalte Release Status = Z9_freigegeben aufweisen werden sich nicht mehr ändern.
    Bei allen andern Objects können sich Werte in den letzten 4 Spalten und in der Spalte Current Description ändern und müssen aktualisiert werden. Neue Objects sollen am Ende der Liste hinzugügt werden.

    Über Eure Hilfe würde ich mich sehr freuen und wäre Euch sehr Dankbar.

    Public Sub WeeklyReport()
    Dim Datei1, Zeile, lngz

    Zeile1 = 1

    'file import --------------------------------------------------------
    Application.ScreenUpdating = False
    Datei1 = Application.GetOpenFilename("Textdateien (*.txt*), *.txt*")
    If CStr(Datei1) = CStr(False) Then
    MsgBox "Sie haben keine Datei ausgewählt!", 48, "Keine Datei ausgewählt"
    Exit Sub
    End If

    Workbooks.OpenText Filename:=Datei1, DataType:=xlDelimited

    Open "C:\Users\Public\zwsp.txt" For Output As #1
    With ActiveSheet
    Print #1, _
    Join(WorksheetFunction.Transpose(.Range(.Cells(1, 1), _
    .Cells(Rows.Count, 1).End(xlUp))), vbCrLf)
    End With
    Close #1

    ActiveWorkbook.Close savechanges:=False

    Open "C:\Users\Public\zwsp.txt" For Input As #1
    Do While Not EOF(1)
    Line Input #1, tmp
    ActiveSheet.Cells(Zeile1, 1) = Replace(tmp, "; ", "#")
    Zeile1 = Zeile1 + 1
    Loop
    Close #1

    For lngz = 1 To Zeile1 + 1
    txt = Split(Cells(lngz, 1), "#")
    For y = 0 To UBound(txt)
    Cells(lngz, y + 1) = txt(y)
    Next
    Next

    Rows("1:5").Delete
    '------------------ Leerzeichen entfernen -----------------------
    On Error Resume Next
    Dim Zelle As Range
    For Each Zelle In ActiveSheet.UsedRange
    Zelle.Value = WorksheetFunction.Trim(Zelle.Value)
    Next Zelle
    On Error GoTo 0

    End Sub()