Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Daten aus Zelle ausschneiden und in Zeile einfügen

Daten aus Zelle ausschneiden und in Zeile einfügen
02.05.2024 10:23:15
h.manfred
Hallo und einen schönen guten Tag,

ich kopiere aus einer pdf-Datei eine Fehlerliste in die Excel Tabelle.
Leider sind die Daten nicht in Spalten aufgeteilt sondern landen in einer einzigen Zelle (Tabelle1).
Die Daten sollten nachher, wie in Tabelle2, in Spalten geordnet sein.
Die km-Leistung könnte auch weniger als 6-stellig sein, in Spalte C kommt am Anfang immer "Fehler", die Mitte sollte in Spalte B eingefügt werden.

Leider hab ich noch kein Beispiel gefunden, welches ich anpassen kann.
Bestimmt könnt ihr mir helfen, im voraus ganz lieben Dank.

https://www.herber.de/bbs/user/169204.xlsx

LG Manfred
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus Zelle ausschneiden und in Zeile einfügen
02.05.2024 13:13:22
UweD
Hallo

in Spalte C kommt am Anfang immer "Fehler" in Zeile 8 und 9 fehlt das aber. Habe ich nachgetragen.

dann so...
in ein Modul
Sub Trennen()

Dim Arr, Trenn1 As String, Trenn2 As String, i As Integer, Tmp As String, Pos As Integer
Trenn1 = " km "
Trenn2 = " Fehler "

With Sheets("Tabelle1")
Arr = Split(.Cells(1, 1), Trenn1)

'Nur für den ersten Satz
.Cells(1, 1) = Trim(Arr(0) & Trenn1)

For i = 1 To UBound(Arr)
.Cells(i, 2) = Split(Arr(i), Trenn2)(0)
Tmp = Split(Arr(i), Trenn2)(1)
Pos = InStrRev(Tmp, " ")
.Cells(i, 3) = Trenn2 & Left(Tmp, Pos - 1)
If i UBound(Arr) Then .Cells(i + 1, 1) = Trim(Mid(Tmp, Pos) & Trenn1)
Next
End With
End Sub


LG UweD
Anzeige
AW: Daten aus Zelle ausschneiden und in Zeile einfügen
02.05.2024 19:04:21
Manfred
Guten Abend UweD,
es sind nicht viele Einträge ohne Fehler am Anfang, ich war der Meinung, dass bis zum nächsten km-Stand einfach in eine Zeile geschrieben wird. Leider bekomme ich bei der Zeile 8 den Fehler "Index außerhalb des gültigen Bereichs".
Vielleicht hast du eine Lösung. Ich versuche gleich mal deinen Code zu verstehen.

LG Manfred
Anzeige
AW: Daten aus Zelle ausschneiden und in Zeile einfügen
03.05.2024 11:04:50
Manfred
Moin UweD,

ich hab ein "On Error Resume Next" eingefügt, jetzt kann ich schon was damit anfangen.
Habe festgestellt, dass aus der kopierten pdf noch ein paar andere Zeilen vorhanden sind, diese lösche ich von Hand.
Diese Fehler lese ich nur einmal im Jahr aus, das genügt mir vollkommen.

Vielen Dank für deinen Code
Anzeige
AW: Daten aus Zelle ausschneiden und in Zeile einfügen
03.05.2024 12:28:45
UweD
Hallo nochmal

Ich hab den nicht "vorhandenen Fehler" mal abgefangen (paradox :-)

Sub Trennen()

Dim Arr, Trenn1 As String, Trenn2 As String, i As Integer, Tmp As String, Pos As Integer, Ausname As String
Trenn1 = " km "
Trenn2 = "Fehler "

With Sheets("Tabelle1")
Arr = Split(.Cells(1, 1), Trenn1) 'Text wird gesplittet bei km

'Nur für den ersten Satz
.Cells(1, 1) = Trim(Arr(0) & Trenn1)

For i = 1 To UBound(Arr) 'für alle Datensätze
If InStr(Arr(i), Trenn2) Then
'Wenn FEHLER im Datensatz vorhanden, dann dort splitten

.Cells(i, 2) = Split(Arr(i), Trenn2)(0) 'erster Teil in B
Tmp = Split(Arr(i), Trenn2)(1) 'restlicher Teil
Ausname = Trenn2
Else
'Kein FEHLER im Datensatz
Tmp = Arr(i) 'nicht trennen in B und C
Ausname = ""
End If
Pos = InStrRev(Tmp, " ") 'Position des Letzten Leerzeiches von hinten
.Cells(i, 3) = Ausname & Left(Tmp, Pos - 1) 'Rest ohne die letzten KM in Spalte C

'wenn es Nicht der letzte Datensatz ist, dann KM ab dem letzten Leerzeichen in die nächste Zeile setzen
If i UBound(Arr) Then .Cells(i + 1, 1) = Trim(Mid(Tmp, Pos) & Trenn1)

Next
End With
End Sub


LG UweD
Anzeige
AW: Daten aus Zelle ausschneiden und in Zeile einfügen
03.05.2024 13:13:52
Manfred
Vielen Dank UweD,

auch wegen der Kommentare, jetzt kann ich den Code ein bisschen besser verstehen.

LG Manfred
Formellösung O365
02.05.2024 13:20:28
MCO
Hallo Manfred!

Ich fürchte leider, dass meine Lösung dir nicht weiterhilft, aber ich werd mich morgen noch um eine entsprechende VBA-Funktion bemühen.

Das geht auf jeden Fall:

Teiler | setzen mit WECHSELN

=WECHSELN(A4;" km";" km |")

=WECHSELN(A5;"Fehler";"|Fehler")



in O365
Zeilenwechsel § setzten mit Wechseln
=WECHSELN(WECHSELN(A1;"lokal ";"§");"Lokal ";"§")


Tabelle auflösen mit
=TEXTTEILEN(A6;"|";"§";1)


Wenn du den Zeilenwechsel so modifizierst
=WECHSELN(WECHSELN(A1;"lokal ";ZEICHEN(10));"Lokal ";ZEICHEN(10))

https://www.herber.de/bbs/user/169217.xlsx

dann hast kannst du das Ergebnis der letzten Formel schon umformatieren: Zeilenumbruch.
Hilf dir das schon weiter?
Ansonsten morgen mit einer Funktion....

Gruß, MCO
Anzeige
AW: Daten aus Zelle ausschneiden und in Zeile einfügen
02.05.2024 21:33:13
Rudi Maintaire
Hallo,
nicht ganz sauber:
Sub machs()

Dim x, a(), tmp
Dim i As Integer
x = Split(Replace([a1], "Lokal", "§", , , vbTextCompare), "§")
ReDim a(1 To UBound(x), 1 To 3)
For i = 0 To UBound(x) - 1
Debug.Print i
tmp = Replace(x(i), "km", "|")
tmp = Replace(tmp, "Fehler", "|")
tmp = Split(tmp, "|")
On Error Resume Next
a(i + 1, 1) = Trim(tmp(0)) & " km"
a(i + 1, 2) = Trim(tmp(1))
a(i + 1, 3) = "Fehler " & Trim(tmp(2)) & " Lokal"
On Error GoTo 0
Next
With Tabelle2
.Cells.Clear
.Cells(1, 1).Resize(UBound(a), 3) = a
End With
End Sub

Gruß
Rudi
Anzeige
AW: Formellösung O365
02.05.2024 19:07:32
Manfred
Hallo MCO,

leider verstehe ich nur Bahnhof und kann mit deiner Formel gar nichts anfangen.
Ich werde nachher ein bisschen damit experimentieren. Vielleicht komm ich drauf.

LG Manfred
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige