Clever-Excel-Forum

Normale Version: .txt-Datei für Excel sauber strukturieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Community,

ich habe eine .txt-Datei als Auszug aus einem System, die ich gerne als Exceldatei weiter bearbeiten würde.
Der Inhalt der .txt-Datei ist allerdings nicht gut strukturiert. Das ganze sieht ungefähr so aus (Daten sind inhaltlich abgewandelt):

"Artikel-Nummer     Artikelbezeichnung            Artikelklasse von  Artikelklasse bis                   Preis   
    

YY3                      Zierleiste Decke Eiche zum Kleben (20x20mm) stoßfest Rückstandsfrei zu Entfernen
                                                                  XX78IU               XX78IZ                               5,00    EUR

YZ3                      Zierleiste Decke Eiche zum Kleben (25x25mm) stoßfest Rückstandsfrei zu Entfernen
                                                                  XX78IU               XX78IZ                               6,00    EUR 

YZ3                      Zierleiste Decke Eiche zum Kleben (30x30mm) stoßfest Rückstandsfrei zu Entfernen
                                                                  XX78IU               XX78IZ                              6,00    EUR
                                                                  XX58IU               XX7KLS                              10,00  EUR
                                                                  DS78IU               XS48IZ                              16,00  EUR
                                                                  XX7KLU               XX73IZ                              12,00  EUR
                                                                  XX78IU               XXJHB8                              6,00    EUR
                                                                  LA78IU               XX78IZ                               6,00    EUR
                                                                  XX78IU               XX78IZ                               6,00    EUR

                                                    Artikel-Preismeldung für
                                                        Deutschland
                                                     Stand: 27.05.2020  Jahr 2020


Artikel-Nummer     Artikelbezeichnung            Artikelklasse von  Artikelklasse bis                   Preis

                     
YY3                      Zierleiste Boden Eiche zum Kleben (20x20mm) stoßfest Rückstandsfrei zu Entfernen
                                                                  RR78IU               RR78IZ                               5,00    EUR

……"


Daraus würde ich gerne eine Tabelle in Excel machen, bei der zu jeder Artikelnummer die Bezeichnung, der Bereich der Artikelklasse und der Preis zugeordnet ist. Das Problem ist einmal, dass relevante Daten zur Artikelnummer sich über mehrere Zeilen erstrecken und nicht alles 1:1 zugeordnet ist und dass zwischen den einzelnen Abschnitten noch Text dazwischen ist ("Artikel-Preisemeldung für...").

Hat jemand eine Idee wie ich da eine saubere Struktur draus basteln kann?

Vielen Dank im Voraus und viele Grüße
Hallo,

zeig den beschriebenen Aufbau bitte anhand einer XL-Datei, dann können Vorschläge darin getestet werden. https://www.clever-excel-forum.de/Thread...ng-stellen
Hallo,

der erste Eindruck:

Wenn man alle mehrfachen blanks auf ein Leerzeichen reduziert und dann Text-in-Spalten anwedet, sollte es schon ziemlich übersichtlich sein.

mfg
Hallo,

die Umwandlung in eine Exceldatei ist eins meiner Problem. Ich stelle Ihnen daher auch die .txt-Datei zur Verfügung.

[attachment=32013]

[attachment=32014]
Code:
Sub M_snb()
    MsgBox Application.Trim(Join(Filter(Split(Replace(CreateObject("scripting.filesystemobject").opentextfile("G:\Anonymisiert Preisliste.txt").readall, " EUR", "_EUR"), vbCrLf), "EUR"), vbLf))
End Sub
Vielen Dank für die schnelle Antwort.

Ich benötige dazu noch eine kurze Erläuterung. Sorry ich bin da noch nicht so firm drin.

Wo muss ich den Code konkret eingeben?
versuche es mal mit diesem Code:

Code:
Const Pfad As String = "Z:\Foren\" '<< anpassen >>

Sub F_en()
Workbooks.OpenText Filename:= _
        Pfad & "Rolf Preisliste.txt", Origin:=65001, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=False _
        , Space:=False, Other:=False, FieldInfo:=Array(1, 2), _
        TrailingMinusNumbers:=True
Columns(1).Replace " EUR", Chr(160) & "EUR"
For i = 1 To 8
    Columns(1).Replace "  ", " "
Next i

For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
    If InStr(1, Cells(i, 1), "Stand") > 0 Then
        tx = Split(Trim(Cells(i, 1)))(1)
        ActiveSheet.Name = tx
    End If
    If IsEmpty(Cells(i, 1)) Then Rows(i).Delete
    If Len(Cells(i, 1)) > 30 Then
        Cells(i, 2) = Mid(Cells(i, 1), 5)
        Cells(i, 1) = Left(Cells(i, 1), 3)
    End If
    If Left(Cells(i, 1), 1) = " " Then
        tx = Split(Trim(Cells(i, 1)))
        If UBound(tx) >= 3 Then
            Cells(i, 3).Resize(, 4) = Application.Transpose(Application.Transpose(tx))
            Cells(i, 1).Clear
        End If
    End If
Next i
End Sub

------------------
sorry, ich habe snb's Code zu spät gesehen
Hi

für deine Beispiel.txt klappt es mit den Code in der Datei bei mir erst mal.

Da du noch nicht weist wie mit Code umzugehen ist, hier mal die Datei für dich.
[attachment=32019]

Gruß Elex
Es geht noch besser:

Lasse zuerst dieses Powershell-Script über die Text-Datei laufen, dann sollte es einfach zu importieren sein:
Code:
$Pfad = 'C:\Users\xxxx\Desktop\'   # anpassen
$f = 'Rolf Preisliste.txt'

$data = get-content ($Pfad + $F) -Encoding UTF8
$data = $data.replace('  EUR', ([char]160 + 'EUR'))

$data = $data -replace ' \(', '@('
$data = $data -replace '\) ', ')@'
$data = $data -replace '(\w)(\s)(\w)', '$1@$3'

for ($i=0; $i -le 9; $i++) {$data = $data.replace('  ', ' ')}

$data | set-content ($Pfad + 'neu_' + $f) -Encoding Unicode
Vielen Dank für die Hilfestellungen von euch. Ich habe die Codes ausprobiert, allerdings kann ich mit den Ergebnissen noch nicht so gut arbeiten.

Das Ziel ist eine Tabelle mit den Daten, die wie folgt aussieht:

[attachment=32041]

[attachment=32039]

Vielleicht habt ihr dazu nochmal Ideen. Vielen Dank im Voraus.
Seiten: 1 2