Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1192to1196
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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
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
Anzeige
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")
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige