Text in Klammern kopieren und extrahieren in Excel
Schritt-für-Schritt-Anleitung
Um den Text in Klammern zu kopieren und aus der Original-Zelle zu löschen, kannst Du die folgenden Schritte durchführen:
-
Öffne den VBA-Editor:
- Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
-
Neues Modul erstellen:
- Klicke mit der rechten Maustaste auf
VBAProject (DeineDatei.xlsx)
und wähle Einfügen > Modul
.
-
Füge den folgenden Code ein:
Function fncTextausKlammer(strText As String) As String
If InStr(1, strText, ")") > 0 And InStr(1, strText, "(") > 0 Then
fncTextausKlammer = Mid(strText, InStrRev(strText, "(", -1) + 1, _
InStrRev(strText, ")", -1) - InStrRev(strText, "(", -1) - 1)
End If
End Function
Sub TextKlammern()
Dim wks As Worksheet, lngZeile As Long, strKlammerText As String
Const lngSpalteOrig = 1 ' Spalte A
Const lngSpalteKlammer = 2 ' Spalte B
Set wks = ActiveSheet
With wks
For lngZeile = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
strKlammerText = fncTextausKlammer(.Cells(lngZeile, lngSpalteOrig).Value)
If strKlammerText <> "" Then
.Cells(lngZeile, lngSpalteKlammer) = strKlammerText
.Cells(lngZeile, lngSpalteOrig) = _
Replace(.Cells(lngZeile, lngSpalteOrig), "(" & strKlammerText & ")", "", 1)
End If
Next lngZeile
End With
End Sub
-
Führe das Makro aus:
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Drücke
ALT + F8
, wähle TextKlammern
aus und klicke auf Ausführen
.
Jetzt wird der Text in der letzten Klammer in die benachbarte Spalte kopiert und die Klammer mit dem Text wird aus der Original-Zelle entfernt.
Häufige Fehler und Lösungen
-
Fehler: #Name?
Lösung: Stelle sicher, dass Du die Funktion genau so aufrufst, wie sie im VBA-Editor definiert ist. In diesem Beispiel ist es fncTextausKlammer
.
-
Fehler: Klammer nicht gefunden
Lösung: Überprüfe, ob die Zelle tatsächlich Klammern enthält und ob die Klammerzeichen in der richtigen Reihenfolge sind.
Alternative Methoden
Wenn Du keine Makros verwenden möchtest, kannst Du die folgende Formel verwenden, um den Text in der letzten Klammer zu extrahieren:
=TEIL(A1;SUCHEN("(";A1;SUCHEN(")";A1)-LÄNGE(A1)+1)+1;SUCHEN(")";A1)-SUCHEN("(";A1;SUCHEN(")";A1)-LÄNGE(A1)+1)-1)
Diese Formel funktioniert allerdings nur, wenn es keine geschachtelten Klammern gibt.
Praktische Beispiele
Nehmen wir an, Du hast in Zelle A1 den Text:
Nachname, Vorname (Zweitname) (Text)
Nach der Ausführung des Makros wird in Zelle B1 "Text" stehen und in A1 wird der Inhalt wie folgt aussehen:
Nachname, Vorname (Zweitname)
Tipps für Profis
- Wenn Du häufig mit Klammern arbeitest, kannst Du die Funktionen in der Arbeitsmappe speichern und sie als Add-In verwenden.
- Nutze die Funktion
InStrRev
in VBA, um von hinten nach vorne zu suchen, was besonders hilfreich ist, wenn Du nur den letzten Text in Klammern kopieren möchtest.
FAQ: Häufige Fragen
1. Kann ich den Code auch für andere Klammerarten verwenden?
Ja, Du kannst den Code leicht anpassen, um andere Klammerarten zu verwenden, indem Du die Zeichen in den If
-Bedingungen änderst.
2. Was mache ich, wenn ich mehrere Klammern in einer Zelle habe?
Der bereitgestellte Code extrahiert nur den Inhalt der letzten Klammer. Wenn Du Inhalte aus mehreren Klammern kopieren möchtest, musst Du den Code entsprechend erweitern.
3. Funktioniert dieser Code in Excel Online?
Die VBA-Funktionalität ist in Excel Online nicht verfügbar. Du musst Excel auf dem Desktop verwenden, um diesen Code auszuführen.