Thema Datum  Von Nutzer Rating
Antwort
28.07.2021 16:44:08 Rilyntar
NotSolved
28.07.2021 17:14:39 Gast7777
NotSolved
28.07.2021 17:45:31 Gast43436
NotSolved
28.07.2021 19:05:07 xlKing
NotSolved
Rot Text Datei einlesen, Variablen identifizieren und in Spalten ausgeben
28.07.2021 20:31:52 xlKing
NotSolved
29.07.2021 10:47:49 Rilyntar
NotSolved

Ansicht des Beitrags:
Von:
xlKing
Datum:
28.07.2021 20:31:52
Views:
423
Rating: Antwort:
  Ja
Thema:
Text Datei einlesen, Variablen identifizieren und in Spalten ausgeben

Hier mal ein kleines Beispiel für die ersten Felder, das dir zeigt, wie du das Ganze nach Option 2 aufbauen kannst.

Als Trennzeichen habe ich hier das Leerzeichen verwendet. Dadurch werden natürlich einige Daten wie Firmennamen auseinandergerissen und müssen, wie im Code gezeigt wieder neu zusammengesetzt werden.

Wichtig: Teste daher, ob es auch möglich ist, den Tabstopp als Trennzeichen zu verwenden. Das würde die ganze Sache noch weiter vereinfachen. Setze dazu einfach die Option .TextFileTabDelimiter auf True und .TextFileSpaceDelimiter auf False. Natürlich musst du dann die Bezüge evtl. nochmal anpassen.

Sub Makro2()
    
    Dim Datei As Variant, Quelle As Worksheet, Ziel As Worksheet
    Dim lastzei As Long, i As Long, z As Long, k As Long, Firmenname As String
    
    Datei = Application.GetOpenFilename("Text Files (*.txt), *.txt")
    If Datei = False Then Exit Sub
    
    Set Quelle = ActiveWorkbook.Worksheets.Add
    With Quelle.QueryTables.Add(Connection:= _
        "TEXT;" & Datei, Destination:=Range("A1"))
        .Name = "textdatei"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = xlWindows
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = True
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = False
        .TextFileSpaceDelimiter = True
        '.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
        .Refresh BackgroundQuery:=False
    End With
    
    
    Spalten = Array("Buchungstag", "VGA", "Betrag", "Wkz", "AG Name", "AG IBAN", "AG BIC", "Status", "Empf Name") 'usw.
    
    Set Ziel = Worksheets.Add(before:=Sheets(1)) 'neues Sheet anlegen
    Ziel.Rows(1).Resize(1, UBound(Spalten) + 1) = Spalten 'Überschriften setzen
    Ziel.Columns(1).NumberFormat = "dd.mm.yyyy" 'Buchungstag
    Ziel.Columns(3).NumberFormat = "#,##0.00"   'Betrag
    
    lastzei = Quelle.Cells(Quelle.Rows.Count, 1).End(xlUp).Row
    
    z = 1
    For i = 1 To lastzei
      If Quelle.Cells(i, 1) = "Buchungstag" Then
        Firmenname = ""
        z = z + 1
        Ziel.Cells(z, 1) = Quelle.Cells(i, 2)  'Buchungstag
        Ziel.Cells(z, 2) = Quelle.Cells(i, 4)  'VGA
        Ziel.Cells(z, 3) = Quelle.Cells(i, 6)  'Betrag
        Ziel.Cells(z, 4) = Quelle.Cells(i, 7)  'Wkz
        Ziel.Cells(z, 5) = Quelle.Cells(i, 10) 'AG Name
        Ziel.Cells(z, 6) = Quelle.Cells(i + 1, 3) 'AG Iban
      ElseIf Quelle.Cells(i, 1) = "AG" And Quelle.Cells(i, 2) = "IBAN" Then
        Ziel.Cells(z, 6) = Quelle.Cells(i, 3) 'AG Iban
        Ziel.Cells(z, 7) = Quelle.Cells(i, 6) 'AG Bic
        Ziel.Cells(z, 8) = Quelle.Cells(i, 8) & " " & Quelle.Cells(i, 9) 'Status
      ElseIf Quelle.Cells(i, 1) = "Empf" And Quelle.Cells(i, 2) = "Name" Then
        For k = 4 To Quelle.Cells(i, Quelle.Columns.Count).End(xlToLeft).Column
          Firmenname = Firmenname & Quelle.Cells(i, k) & " "
        Next k
        Ziel.Cells(z, 9) = Left(Firmenname, Len(Firmenname) - 1)
      'ElseIf usw.
      End If
    Next i
    
End Sub

Gruß Mr. K.

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
28.07.2021 16:44:08 Rilyntar
NotSolved
28.07.2021 17:14:39 Gast7777
NotSolved
28.07.2021 17:45:31 Gast43436
NotSolved
28.07.2021 19:05:07 xlKing
NotSolved
Rot Text Datei einlesen, Variablen identifizieren und in Spalten ausgeben
28.07.2021 20:31:52 xlKing
NotSolved
29.07.2021 10:47:49 Rilyntar
NotSolved