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
Inhaltsverzeichnis

Sonderzeichen in Excel automatisch entfernen?

Forumthread: Sonderzeichen in Excel automatisch entfernen?

Sonderzeichen in Excel automatisch entfernen?
Felix
Hallo,
ich habe ein Problem in Excel 2003. Dort habe ich eine Datei erstellt in die eine externe Anwendung (MacroX) automatisch Artikelnummern in diesem Format einfügt: "ABCDEF157) =" es soll jedoch kein (,) oder = angezeigt werden. Also im Prinzip keine Sonderzeichen nur Buchstaben und Zahlen.
Ich habe es bereits mit der Formatierung in Excel probiert leider hat nichts geklappt. Das ganze soll für die Spalten A,B,C,D gelten von 1 - 200
Ich würde mich über eure Hilfe sehr freuen.
vielen Dank
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Lösung mit Regexp
03.01.2011 10:22:34
Reinhard
Hallo Felix,
mit Hilfszellen in T1:W200.

Option Explicit
Sub SonderzeichenRaus()
Application.ScreenUpdating = False
Range("T1:W200").Formula = "=erlaubt(A1)"
Range("T1:W200").Value = Range("T1:W200").Value
Range("T1:W200").Cut Destination:=Range("A1")
Application.ScreenUpdating = True
End Sub
Function erlaubt(strT As String) As String
Dim Regex As Object
Set Regex = CreateObject("Vbscript.Regexp")
With Regex
.Pattern = "[^A-Z\d]"
.Global = True
.IgnoreCase = False
.MultiLine = False
erlaubt = .Replace(strT, "")
End With
End Function

Gruß
Reinhard
Anzeige
AW: Lösung mit Regexp
03.01.2011 10:29:07
Felix
Vielen Dank für die Hilfe. Ich weiss leider nicht wo ich das einfügen soll. Kannst du mir bitte genau erklären wo das eingefügt werden muss? Ist das ein VB Script? Habe sowas noch nie benutzt und kenne mich nicht besonders gut aus mit Excel... vielen Dank
AW: Lösung mit Regexp
03.01.2011 10:41:52
Reinhard
Hallo Felix,
Alt+F11, Einfügen---Modul, Code reinkopieren, VB-Editor schließen.
Das Makro SonderzeichenRaus ausführen lassen über
Extras---Makros---Makro...
Oder
Alt+F8
Gruß
Reinhard
Anzeige
AW: Lösung mit Regexp
03.01.2011 10:47:23
Felix
ok es hat geklappt aber hat einige Fehler.... es hat jetzt meine ganze farbige Formatierung der Zellen auch gelöscht. Und was schlimmer ist: in der ersten Zeile hatte ich in A1,B1,C1 sowie D1 überschriften dort wird jetzt nurnoch der erste Buchstabe angezeigt.
Das größte Problem jedoch: Die Sonderzeichen werden nur entfernt wenn ich das Makro ausführe. Ich brauche es aber so dass die Sonderzeichen sofort gelöscht werden nachdem der Text in die Zellen kopiert wurde. Ist das möglich?
vielen vielen Dank
Anzeige
AW: Lösung mit Regexp
03.01.2011 11:00:16
ransi
HAllo
Dann versuch mal so:
' **********************************************************************
' Modul: Tabelle3 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Zelle As Range
    Dim Bereich As Range
    Dim Regex As Object
    Set Bereich = Intersect(Target, Range("A1:D200"))
    If Bereich Is Nothing Then Exit Sub
    Set Regex = CreateObject("Vbscript.Regexp")
    With Regex
        .Pattern = "[^A-Z\d]"
        .Global = True
        .IgnoreCase = False
        .MultiLine = False
        Application.EnableEvents = False
        For Each Zelle In Bereich
            Zelle.Value = .Replace(Zelle.Text, "")
        Next
    End With
    Application.EnableEvents = True
End Sub


Rechte Maus auf den TAbellenreiter--Code anzeigen
DA den Code reinkopieren
http://www.online-excel.de/excel/singsel_vba.php?f=44#s4
ransi
Anzeige
AW: Lösung mit Regexp
03.01.2011 11:06:44
Felix
SUPER!!! Vielen Dank damit funktioniert es perfekt. Es bleibt sogar die Formatierung erhalten und die Zellen werden immer sofort nach dem Einfügen bearbeitet...
jetzt habe ich nurnoch eine Frage. Was wenn ich nun z.B. das Zeichen "-" erlauben möchte. Ist das möglich?
AW: Lösung mit Regexp
03.01.2011 11:17:43
Felix
Zu früh gefreut... leider funktioniert es hiermit auch nicht so gut. Ich kann nun keine normalen wörter wie "Artikelnummer" oder "Test" schreiben diese werden komplett wieder entfernt. Wenn ich "test33" schreibe wird test entfernt und es bleibt nur die 33 übrig.
Wieso passiert das? Es sollen nur die Sonderzeichen wie (,) sowie = entfernt werden sonst nichts...
vielen Dank
Anzeige
AW: Lösung mit Regexp
03.01.2011 11:35:47
ransi
HAllo Felix
ICh bin davon ausgegangen das du nur GROSSBUCHSTABEN und Zahlen haben möchtest.
VErsuch mal dies PAttern:
.Pattern = "[^A-Za-zÄÖÜäöüß\d-]"

A-Z sind Großbuchstaben
a-z sind Kleinbuchstaben
äöüß selbsterklärend
ÄÖÜ selbsterklärend
\d sind Zahlen
- ist -
ransi
Anzeige
AW: Lösung mit Regexp
03.01.2011 11:42:12
Felix
super das ist perfekt! Ich danke dir vielmals für deine Mühe es funktioniert jetzt einwandfrei!! Vielen Dank
AW: Anpassung eines VBA Script
05.01.2011 20:03:08
Felix
Also dieses Script ist ganz große Klasse ransi. Ich danke dir sehr. Aber ich möchte jetzt eine zweite Range in diesem Script definieren mit ein paar Regeln die dann nur für diese Range zutreffen. Wo füge ich das denn ein damit das läuft? Ich habe alles mögliche versucht leider erhalte ich immer nur Fehlermeldungen...
Die neue Range soll sich nur auf alle A Zellen bis 200 beziehen also:
For Each Zelle In Sheets("Tabelle1").Range("A2:A200")
Anzeige
AW: Lösung mit Regexp
03.01.2011 11:48:28
Reinhard
Hallo Felix,
jetzt mit dem neuen Code von Ransi nicht mehr nötig *glaub*
Aber wenn du die Überschriftszeile von der Überprüfung ausschließen willst, so ändere in seinem Code A1:D200 auf A2:D200.
Gruß
Reinhard
;
Anzeige
Anzeige

Infobox / Tutorial

Sonderzeichen in Excel automatisch entfernen


Schritt-für-Schritt-Anleitung

Um Sonderzeichen in Excel zu entfernen, kannst Du ein VBA-Script verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, wie Du das machen kannst:

  1. Öffne den VBA-Editor:

    • Drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Neues Modul einfügen:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Code einfügen:

    • Kopiere den folgenden Code in das Modul:
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim Zelle As Range
       Dim Bereich As Range
       Dim Regex As Object
       Set Bereich = Intersect(Target, Range("A1:D200"))
       If Bereich Is Nothing Then Exit Sub
       Set Regex = CreateObject("Vbscript.Regexp")
       With Regex
           .Pattern = "[^A-Za-zÄÖÜäöüß\d-]"
           .Global = True
           .IgnoreCase = False
           Application.EnableEvents = False
           For Each Zelle In Bereich
               Zelle.Value = .Replace(Zelle.Text, "")
           Next
       End With
       Application.EnableEvents = True
    End Sub
  4. Speichern und schließen:

    • Schließe den VBA-Editor und speichere Deine Excel-Datei als Makro-fähige Datei (*.xlsm).
  5. Testen:

    • Füge nun Daten in den Bereich A1:D200 ein und beobachte, wie die Sonderzeichen automatisch entfernt werden.

Häufige Fehler und Lösungen

  • Problem mit der Formatierung: Wenn Deine Zellformatierungen verloren gehen, stelle sicher, dass Du den richtigen Code verwendest. Der oben angegebene Code sollte die Formatierung nicht beeinflussen.

  • Sonderzeichen werden nicht entfernt: Überprüfe die Regex-Pattern. Wenn Du nur bestimmte Sonderzeichen entfernen möchtest, passe das Pattern entsprechend an, z.B. [^A-Za-z\d] für nur Buchstaben und Zahlen.

  • VBA-Code wird nicht ausgeführt: Stelle sicher, dass Du makrosicherheitskonforme Einstellungen hast. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter, um die Makros zu aktivieren.


Alternative Methoden

Wenn Du keine VBA-Lösung verwenden möchtest, kannst Du auch die Excel-Funktion SUBSTITUTE oder CLEAN nutzen, um bestimmte Zeichen zu entfernen. Hier ein Beispiel:

=SUBSTITUTE(A1, "=", "")

Diese Formel entfernt das Gleichheitszeichen aus dem Text in Zelle A1. Du kannst sie für andere Zeichen anpassen.

Für eine umfassende Entfernung aller Sonderzeichen könntest Du eine Kombination aus verschiedenen Formeln in Hilfsspalten verwenden, bevor Du das Endergebnis zusammenführst.


Praktische Beispiele

  1. Entfernen von speziellen Zeichen:

    • Angenommen, Du hast die Artikelnummern in den Zellen A1 bis D200, die das Zeichen ) enthalten. Du kannst den VBA-Code verwenden, um diese beim Einfügen zu entfernen.
  2. Erlauben von zusätzlichen Zeichen:

    • Möchtest Du das Zeichen - erlauben? Ändere das Pattern im Code zu:
      .Pattern = "[^A-Za-zÄÖÜäöüß\d-]"
  3. Datenbereinigung:

    • Wenn Du Daten aus einer externen Anwendung importierst, wird der VBA-Code sofort aktiviert, um alle unerwünschten Zeichen zu entfernen.

Tipps für Profis

  • Regex anpassen: Du kannst das Regex-Pattern anpassen, um spezifische Anforderungen zu erfüllen, wie z.B. nur bestimmte Sonderzeichen zu erlauben oder zusätzliche Zeichen zu entfernen.

  • Regelmäßige Sicherungen: Mache regelmäßig Backups Deiner Excel-Dateien, besonders wenn Du mit VBA arbeitest.

  • Leistungsoptimierung: Wenn Du große Datenmengen bearbeitest, kannst Du die Bildschirmaktualisierung und die Ereignisse während des Makros deaktivieren, um die Leistung zu verbessern.


FAQ: Häufige Fragen

1. Kann ich den VBA-Code auch in Excel Online verwenden? Leider funktioniert VBA nicht in Excel Online. Du musst die Desktop-Version verwenden.

2. Wie finde ich heraus, welche Sonderzeichen entfernt werden? Du kannst die Funktion =FINDEN() verwenden, um zu prüfen, ob ein Zeichen vorhanden ist, bevor Du es mit VBA entfernst.

3. Was passiert, wenn ich den Code nicht ganz verstehe? Du kannst Hilfe in Excel-Foren suchen oder Tutorials zu VBA und Regex anschauen, um ein besseres Verständnis zu bekommen.

4. Wie kann ich das Makro automatisch ausführen, wenn die Datei geöffnet wird? Du kannst das Makro im Workbook_Open() Event platzieren, um es beim Öffnen der Datei auszuführen.

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