HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv

Beiträge zum Thread: Text in Spalten

rmz
03.08.2026 13:55:21
Text in Spalten
daniel
03.08.2026 14:19:34
AW: Text in Spalten
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
rmz
03.08.2026 13:55:21
Text in Spalten
Hallo ich habe eine Tabelle mit ca. 15000 Zeilen.

ich muß jetzt den Text in Spalte G auftrößeln, das funktioniert mit meinem erstellten Code schon ganz gut, aber nur für eine Zeile
jetzt meine Frage an die Profis, wie bekomme ich da noch eine Schleife hin, die alle belegten Zellen in Spalte G abarbeitet.
ich würde mich über einige Anregungen freuen.
vielen Dank schon mal im vorraus!

LG Rainer

hier mein bisheriger Code:

Sub TextInSpalten()
Dim rngZelle As Range
Dim strText As String
Dim i As Long, intKlammer As Integer
Dim strErgebnis As String
Dim arrTeile() As String
Dim lngSpalte As Long
Dim wks As Worksheet

' Aktives Tabellenblatt setzen (Beispiel: Spalte G hat den Text, Start in H1)
Set wks = ActiveSheet
Set rngZelle = wks.Range("G4") ' Anpassen an deine Zelle/Schleife

strText = rngZelle.Value
intKlammer = 0
strErgebnis = ""

' Zeichenweise durchgehen
For i = 1 To Len(strText)
Dim c As String
c = Mid(strText, i, 1)

If c = "[" Then intKlammer = intKlammer + 1
If c = "]" Then intKlammer = intKlammer - 1
If c = "(" Then intKlammer = intKlammer + 1
If c = ")" Then intKlammer = intKlammer - 1

' Wenn wir ein Leerzeichen (Trennzeichen) haben, aber IN der Klammer sind,
' ersetzen wir das Leerzeichen z.B. durch ein Platzhalter-Zeichen oder lassen es unverändert.
' Hier: Wenn Leerzeichen und in Klammer, behalten, sonst normales Trennzeichen (z.B. |)
If c = " " And intKlammer > 0 Then
strErgebnis = strErgebnis & " " ' Leerzeichen in Klammern beibehalten
ElseIf c = " " And intKlammer = 0 Then
strErgebnis = strErgebnis & "|" ' Echtes Trennzeichen außerhalb der Klammer
Else
strErgebnis = strErgebnis & c
End If
Next i

' In Array aufteilen anhand des Platzhalters "|"
arrTeile = Split(strErgebnis, "|")

' Ergebnisse in nebeneinanderliegende Spalten schreiben (ab Spalte H / Index 8)
For i = LBound(arrTeile) To UBound(arrTeile)
rngZelle.Offset(0, 1 + i).Value = Trim(arrTeile(i))
Next i

End Sub
Forumbeitrag
Excel-Version des Fragestellers:
2022
Erfahrungslevel des Fragestellers:
Excel gut - VBA bescheiden
daniel
03.08.2026 14:19:34
AW: Text in Spalten
Hi

da muss noch eine Schleife außenrum hinzugefügt werden (Code nur Beispielhaft, bitte nicht kopieren, sondern lesen, verstehen und selber schreiben)

For each rngZelle in Range("G4:G999999").SpecialCells(xlcelltypeconstants, 2)

strText = Zelle.Value
For i = 1 To Len(strText)
c = Mid(strText, i, 1)
....
....
next i
' In Array aufteilen anhand des Platzhalters "|"
arrTeile = Split(strErgebnis, "|")

' Ergebnisse in nebeneinanderliegende Spalten schreiben (ab Spalte H / Index 8)
For i = LBound(arrTeile) To UBound(arrTeile)
rngZelle.Offset(0, 1 + i).Value = Trim(arrTeile(i))
Next i
Next rngZelle


wobei ich dir empfehlen würde, nach dem Einfügen der Trennzeichen den Text zunächst als ganzes in die Zelle zurückzuschreiben und dann am Schluss mit der ganzen Spalte ein TEXT IN SPALTEN auszuführen (das kannst du gut mit dem Recorder aufzeichnen)
das sollte erheblich schneller sein.

Gruß Daniel