HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
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
Als Antwort auf diesen Beitrag
Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.