ich möchte in jeder Zelle Spalte A per VBA alles in einem
String löschen, was ab/hinter der ersten Klammer steht.
Inklusive der Klammer!
Hat jemand eine Idee?
Schöne Grüße
| VBA-Code aus Microsoft Excel Objekt Tabelle1: |
| Option Explicit Sub test() On Error Resume Next Dim r As Range For Each r In Selection r.Value = Left(r.Value, InStr(1, r.Value, "(") - 1) Next End Sub |
Um in Excel per VBA alles ab der ersten Klammer in einer Zelle zu löschen, kannst Du folgenden VBA-Code verwenden. Dieser Code wird in das VBA-Modul der Tabelle eingefügt:
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
Klicke im Projekt-Explorer auf deine Arbeitsmappe und dann auf „Tabelle1“ (oder die entsprechende Tabelle).
Füge den folgenden Code ein:
Option Explicit
Sub test()
On Error Resume Next
Dim r As Range
For Each r In Selection
r.Value = Left(r.Value, InStr(1, r.Value, "(") - 1)
Next
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Wähle die Zellen in Spalte A aus, in denen Du den Inhalt ändern möchtest.
Drücke ALT + F8, wähle „test“ aus und klicke auf „Ausführen“.
Der VBA-Code entfernt alles ab der ersten Klammer in den ausgewählten Zellen.
Fehler: "Typenkonflikt"
Lösung: Stelle sicher, dass alle ausgewählten Zellen Text enthalten. Der Code funktioniert nicht mit leeren Zellen oder Zellen mit Zahlen.
Fehler: "Index außerhalb des Bereichs"
Lösung: Dieser Fehler tritt auf, wenn keine Klammer in einer Zelle vorhanden ist. Du kannst den Code anpassen, um diese Situation abzufangen.
Falls Du keinen VBA-Code verwenden möchtest, kannst Du auch die Excel-Funktion LINKS und FINDEN nutzen:
Angenommen, Deine Daten stehen in Zelle A1. Du kannst die folgende Formel in Zelle B1 verwenden:
=LINKS(A1; FINDEN("("; A1) - 1)
Ziehe die Formel nach unten, um sie auf andere Zellen anzuwenden.
Diese Methode ist jedoch weniger flexibel, da sie nicht automatisch funktioniert, wenn es mehrere Klammern in einem String gibt.
Hier sind einige Beispiele, wie der VBA-Code funktioniert:
Beispiel 1:
Zelle A1 enthält den Text „Produkt (ID 123)“. Nach dem Ausführen des Codes wird der Inhalt in Zelle A1 zu „Produkt“.
Beispiel 2:
Zelle A2 enthält „Dienstleistung (Nr. 456) zusätzliche Informationen“. Nach dem Ausführen des Codes wird der Inhalt in Zelle A2 zu „Dienstleistung“.
1. Kann ich den VBA-Code für andere Spalten verwenden?
Ja, Du kannst den Code anpassen, um andere Spalten zu bearbeiten, indem Du den Bereich in der For Each Schleife änderst.
2. Funktioniert der Code auch in Excel 365?
Ja, der VBA-Code funktioniert in Excel 365 sowie in anderen Versionen von Excel, die VBA unterstützen.