Dank Diesem tollen Code hier unten, welchen ich übrigens hier im Forum erhalten hatte versuche ich eine komplizierte Textdatei im Excel umzugestalten.
Die Textdatei ist sehr gross und hat folgende Inhalte:
Aufteiler 0000265614 ,Position 00010
Bestellposition für: Material: 000000000003714901, Werk: 4251 wurde nicht angele
Status "gesp. für Beschaffung" des Materials 3.714.901 erlaubt keine externe Bes
Einkaufsorg. CP01, Buchungskreis CG01, Bestellart UB, abgeb. Werk 9017
Aufteiler 0000265614 ,Position 00010
Bestellposition für: Material: 000000000003714901, Werk: 4253 wurde nicht angele
Status "gesp. für Beschaffung" des Materials 3.714.901 erlaubt keine externe Bes
Einkaufsorg. CP01, Buchungskreis CG01, Bestellart UB, abgeb. Werk 9017
Aufteiler 0000265614 ,Position 00010
Bestellposition für: Material: 000000000003714901, Werk: 4255 wurde nicht angele
Status "gesp. für Beschaffung" des Materials 3.714.901 erlaubt keine externe Bes
Einkaufsorg. CP01, Buchungskreis CG01, Bestellart UB, abgeb. Werk 9017
Aufteiler 0000265614 ,Position 00010
Bestellposition für: Material: 000000000003714901, Werk: 4257 wurde nicht angele
Status "gesp. für Beschaffung" des Materials 3.714.901 erlaubt keine externe Bes
Einkaufsorg. CP01, Buchungskreis CG01, Bestellart UB, abgeb. Werk 9017
Es soll nun alles schön fein säuberlich in Zeilen (NICHT SPALTEN !) aufgeteilt werden:
Sub umgestalten()
Dim i As Long
'--- Zusammenfassen
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
If Left(Cells(i, 1), 12) "Aufteiler" Then
Cells(i - 1, 1).Value = Cells(i - 1, 1).Value & "," & Cells(i, 1).Value
Rows(i).Delete
End If
Next
'--- Trennzeichen ergänzen (bei Bedarf erweitern)
With Columns(1)
.Replace "Aufteiler", "Aufteiler,", xlPart
.Replace ",Position", ",Position,", xlPart
.Replace "Bestellposition für: Material:", "Bestellposition für: Material:,", xlPart
.Replace "Werk:", "Werk,", xlPart
.Replace "wurde nicht angele", ",wurde nicht angelegt", xlPart
' bei Bedarf weiterführen
'.Replace ", ", ",", xlPart
End With
'--- Text in Spalten aufteilen
Columns(1).TextToColumns _
Destination:=Range("A1"), _
DataType:=xlDelimited, _
Comma:=True
End Sub
Dieser Code funktioniert schon recht gut, ausser dass mir der Text "wurde nicht angele
Status "gesp. für Beschaffung" des Materials 3.714.901 erlaubt keine externe Bes
Einkaufsorg. CP01, Buchungskreis CG01, Bestellart UB, abgeb. Werk 9017"
gleichwohl in einzelne Zellen, statt in eine Zeile aufgeteilt wird.
D.h. es soll also (gemäss obigem Code) .Replace "wurde nicht angele", ",wurde nicht angelegt", xlPart
nicht mehr in weitere Zellen unterteilt- sondern der Rest des Datensatzes in die gleiche Zelle geschrieben werden.
Jeder Datensatz beginnt beim Wort "Aufteiler"
Mein Problem ist nun auch, dass ich nicht schön Zeile um Zeile schön untereinander in Excel erhalte, sondern alles auf einer Zeile hintereinander geschrieben wird.
Wie müsste ich also den Code ändern / ergänzen, damit ich folgendes noch erreiche:
- Jeder Datensatz (immer mit dem Wort "Aufteiler" beginnend hat eine separate Zeile
- nach der Werksnummer (abgeb. Werk XXXX) soll rest des Datensatzes in gleicher Zelle stehen
- Textfile soll nicht zuerst in Excel kopiert werden müssen, sondern soll über ein Dialogfenster ausgewählt werden können.
WÄHRE SUPERNETT, WENN MIR HIER JEMAND WEITERHELFEN KÖNNTE !!!!
meine VBA - Kenntnisse sind da am "Anschlag" und müssen weiter ausgebaut werden :-)