Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: bestimmte Zeichen löschen

bestimmte Zeichen löschen
Karsten
Hallo...
in folgendem Beispiel möchte ich bestimmte Zeichen löschen. D.h: die, die keine "richtigen Buchstaben" sind.
https://www.herber.de/bbs/user/69042.xls
Kann mir jemand mit einer entsprechenden Methode weiterhelfen?
Gruß
Karsten
Anzeige
AW: bestimmte Zeichen löschen
13.04.2010 11:50:16
Tino
Hallo,
teste mal diesen Code.
Sub Nur_Text()
Dim Regex As Object
Dim meAr(), strInhalt$
Dim nCount&, lngMaxRow&


With Sheets("Tabelle1") 'Tabelle anpassen 
    lngMaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    
    If lngMaxRow = 1 Then
        meAr = .Range("A1", .Cells(lngMaxRow, 1)).Resize(, 2).Value2
        Redim Preserve meAr(1 To Ubound(meAr), 1 To 1)
    Else
        meAr = .Range("A1", .Cells(lngMaxRow, 1)).Value2
    End If
    
    Set Regex = CreateObject("Vbscript.Regexp")
    
    With Regex
      .MultiLine = True
      .Global = True
    
        For nCount = 1 To Ubound(meAr)
            .Pattern = "\W|\d"
            meAr(nCount, 1) = .Replace(meAr(nCount, 1), " ")
            
            .Pattern = " +"
            meAr(nCount, 1) = .Replace(meAr(nCount, 1), " ")
            
            .Pattern = "^ | $"
            meAr(nCount, 1) = .Replace(meAr(nCount, 1), "")
        Next nCount
    
    End With

    .Range("A1").Resize(Ubound(meAr)) = meAr

End With

End Sub
Gruß Tino
Anzeige
, strInhalt$ kann gelöscht werden...
13.04.2010 11:53:23
Tino
Hallo,
, strInhalt$ war zum testen eingebaut, kann gelöscht werden.
Gruß Tino
AW: bestimmte Zeichen löschen
13.04.2010 12:08:21
Karsten
Hallo Tino,
abgesehen von ein paar Schönheitsfehlern im Ergebnis funktioniert dein Makro spitze.
Falls du ihn noch verbessern könntest / willst:
- Vorher müßte alles nach dem Punkt gelöscht werden, da es da noch "richtige" Zeichen gibt, die nicht gebraucht werden.
- Der "." sowohl "ä,ü,ö,ß" und ? sollten erhalten bleiben.
Aber, trotzdessen. Es bringt mir schon wesentlich mehr Ordnung in die Sache.
Danke.
Gruß
Karsten
Anzeige
hmmmm.....
13.04.2010 12:19:20
Oberschlumpf
Hi Karsten
....wer eine qualifizierte Antwort erwartet, sollte, nein, MUSS eine qualifizierte Frage stellen...
Warum schreibst du nicht gleich in deinem Eingangsthread das, was du jetzt noch willst?
Ciao
Thorsten
teste mal diesen Code.
14.04.2010 08:37:55
Tino
Hallo,
bin gestern nicht mehr dazu gekommen.
Sub Nur_Text()
Dim Regex As Object
Dim meAr(), strInhalt$
Dim nCount&, lngMaxRow&
Dim oMatch As Object

With Sheets("Tabelle1") 'Tabelle anpassen 
    lngMaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row
    
    If lngMaxRow = 1 Then
        meAr = .Range("A1", .Cells(lngMaxRow, 1)).Resize(, 2).Value2
        Redim Preserve meAr(1 To Ubound(meAr), 1 To 1)
    Else
        meAr = .Range("A1", .Cells(lngMaxRow, 1)).Value2
    End If
    
    Set Regex = CreateObject("Vbscript.Regexp")
    
    With Regex
      .MultiLine = True
      .Global = True
    
        For nCount = 1 To Ubound(meAr)
            
            .Pattern = "[.!?]"
            Set oMatch = .Execute(meAr(nCount, 1))
            For Each oMatch In oMatch
                meAr(nCount, 1) = Left$(meAr(nCount, 1), oMatch.FirstIndex + 1)
                Exit For
            Next oMatch
            
            .Pattern = "[^A-Za-z .!?,äüöß]"
            meAr(nCount, 1) = .Replace(meAr(nCount, 1), " ")
            
            .Pattern = " +"
            meAr(nCount, 1) = .Replace(meAr(nCount, 1), " ")
            
            .Pattern = "^ | $"
            meAr(nCount, 1) = .Replace(meAr(nCount, 1), "")
        
        Next nCount
    
    End With

    .Range("A1").Resize(Ubound(meAr)) = meAr

End With

End Sub
Gruß Tino
Anzeige
AW: bestimmte Zeichen löschen
13.04.2010 11:56:50
Oberschlumpf
Moin Karsten
Versuch es mal mit dieser Datei:
https://www.herber.de/bbs/user/69044.xls
Die erste Schleife

For liRow =...
durchläuft Spalte A bis zur letzten, benutzen Zeile, weil ja deine Daten in Spalte A stehen.
Die zweite Schleife

For liChar =...
überprüft jedes einzelne Zeichen der Einträge in Spalte A.
Sollte ein Zeichen kein Groß- oder Kleinbuchstabe sein, wird dieses Zeichen gegen ein Leerzeichen getauscht.
Wenn die zweite Schleife also durchgelaufen ist, gibt es sehr viele Leerzeichen in den Einträgen.
Mit der Schleife

Do Until...
werden so lange 2 nebeneinander stehende Leerzeichen durch nur 1 Leerzeichen ersetzt, bis es keine 2 nebeneinander stehende Leerzeichen mehr gibt.
Das kann aber bedeuten, dass in den Einträgen noch jeweils ein Leerzeichen ganz am Anfang und/oder ein Leerzeichen am Ende des Eintrages steht.
Mit der Zeile

Cells(liRow, 1).Value = Trim(Cells(liRow, 1).Value)
werden auch diese Leerzeichen eliminiert, so dass wirklich nur die Buchstaben übrig bleiben.
Hilfts?
Ciao
Thorsten
Anzeige
AW: bestimmte Zeichen löschen
13.04.2010 11:59:32
David
Hallo Karsten,
zum Beispiel so:
Tabelle1
 AB
3ƈ]/ó·€Mæ¿~>ç· 0 …#WERT!
4çSie sahen zu, wie die Sonne unterging.' …Sie sahen zu, wie die Sonne unterging.
5çThey watched the sun setting.0 „They watched the sun setting.
6çThey watched the sun setting.0 „They watched the sun setting.
7çSie sorgte für das Baby, während die Eltern weg waren.A Sie sorgte für das Baby, während die Eltern weg waren.
8çShe &took care of& the baby while the parents were out.' She &took care of& the baby while the parents were out.
9ç&Take care& or you will fall.5 &Take care& or you will fall.
10çEin Lächeln lag auf dem Gesicht des Kindes.2 ~Ein Lächeln lag auf dem Gesicht des Kindes.
11çThere was a &smile& on the child's face.3 ~There was a &smile& on the child's face.
12çIhr Hund ist ein Schutz gegen Einbrecher.7 }Ihr Hund ist ein Schutz gegen Einbrecher.
13çTheir dog is a &protection& against burglars.< }Their dog is a &protection& against burglars.
14çMan kann ein Kind nicht vor jeder Gefahr schützen.< }Man kann ein Kind nicht vor jeder Gefahr schützen.
15çYou cannot &protect& a child against every danger.. |You cannot &protect& a child against every danger.
16çPaß auf (auf das), was ich dir sage!+ |Paß auf (auf das), was ich dir sage!
17çPay attention to what I tell you.> {Pay attention to what I tell you.
18çIhr Mann merkte nicht, daß sie ein neues Kleid trug.G {Ihr Mann merkte nicht, daß sie ein neues Kleid trug.
19çHer husband didn't &notice& that she was wearing a new dress.E {Her husband didn't &notice& that she was wearing a new dress.
20çIch vermißte meinen Geldbeutel erst, als ich zahlen wollte.8 zIch vermißte meinen Geldbeutel erst, als ich zahlen wollte.
21çI only &missed& my purse when I wanted to pay.> zI only &missed& my purse when I wanted to pay.
22çEine Kapelle wurde zum Andenken an den König gebaut.3 zEine Kapelle wurde zum Andenken an den König gebaut.
23çA chapel was built in memory of the king.2 zA chapel was built in memory of the king.
24çSie hat keine Erinnerung an ihren Vater., ySie hat keine Erinnerung an ihren Vater.
25çShe has no &memory& of her father.8 yShe has no &memory& of her father.
26çKönnen wir ihm in dieser Angelegenheit helfen?+ yKönnen wir ihm in dieser Angelegenheit helfen?
27çCan we help him in this &matter&?, yCan we help him in this &matter&?
28çEr redete sehr freundlich mit uns.4 yEr redete sehr freundlich mit uns.
29çHe talked to us in a very friendly manner.C yHe talked to us in a very friendly manner.
30çDie Art, wie sie sich kleidet, zeugt von gutem Geschmack.4 xDie Art, wie sie sich kleidet, zeugt von gutem Geschmack.
31çHer &manner& of dressing shows good taste.- xHer &manner& of dressing shows good taste.
32çEr ging sehr früh von zu Hause weg.9 wEr ging sehr früh von zu Hause weg.
33çEr versteckte den Brief in seinem Schreibtisch.* wEr versteckte den Brief in seinem Schreibtisch.
34çHe &hid& the letter in his desk.A vHe &hid& the letter in his desk.
35çEltern können ihre Kinder nicht vor Krankheit schützen.@ vEltern können ihre Kinder nicht vor Krankheit schützen.
36çParents cannot &guard& their children against disease.. vParents cannot &guard& their children against disease.
37çVergiß nicht, das Licht auszumachen.. uVergiß nicht, das Licht auszumachen.
38çDon't &forget& to put out the light. ¤ í ê ¤Q´c8é›mЄ5ЁR¦=ï¡R̒Z Don't &forget& to put out the light.

verwendete Formeln
Zelle Formel
B3 =LINKS(TEIL(A3;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A3;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A3;3;999)));FINDEN("!";TEIL(A3;3;999));FINDEN("?";TEIL(A3;3;999)));FINDEN(".";TEIL(A3;3;999))))
B4 =LINKS(TEIL(A4;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A4;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A4;3;999)));FINDEN("!";TEIL(A4;3;999));FINDEN("?";TEIL(A4;3;999)));FINDEN(".";TEIL(A4;3;999))))
B5 =LINKS(TEIL(A5;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A5;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A5;3;999)));FINDEN("!";TEIL(A5;3;999));FINDEN("?";TEIL(A5;3;999)));FINDEN(".";TEIL(A5;3;999))))
B6 =LINKS(TEIL(A6;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A6;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A6;3;999)));FINDEN("!";TEIL(A6;3;999));FINDEN("?";TEIL(A6;3;999)));FINDEN(".";TEIL(A6;3;999))))
B7 =LINKS(TEIL(A7;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A7;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A7;3;999)));FINDEN("!";TEIL(A7;3;999));FINDEN("?";TEIL(A7;3;999)));FINDEN(".";TEIL(A7;3;999))))
B8 =LINKS(TEIL(A8;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A8;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A8;3;999)));FINDEN("!";TEIL(A8;3;999));FINDEN("?";TEIL(A8;3;999)));FINDEN(".";TEIL(A8;3;999))))
B9 =LINKS(TEIL(A9;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A9;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A9;3;999)));FINDEN("!";TEIL(A9;3;999));FINDEN("?";TEIL(A9;3;999)));FINDEN(".";TEIL(A9;3;999))))
B10 =LINKS(TEIL(A10;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A10;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A10;3;999)));FINDEN("!";TEIL(A10;3;999));FINDEN("?";TEIL(A10;3;999)));FINDEN(".";TEIL(A10;3;999))))
B11 =LINKS(TEIL(A11;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A11;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A11;3;999)));FINDEN("!";TEIL(A11;3;999));FINDEN("?";TEIL(A11;3;999)));FINDEN(".";TEIL(A11;3;999))))
B12 =LINKS(TEIL(A12;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A12;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A12;3;999)));FINDEN("!";TEIL(A12;3;999));FINDEN("?";TEIL(A12;3;999)));FINDEN(".";TEIL(A12;3;999))))
B13 =LINKS(TEIL(A13;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A13;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A13;3;999)));FINDEN("!";TEIL(A13;3;999));FINDEN("?";TEIL(A13;3;999)));FINDEN(".";TEIL(A13;3;999))))
B14 =LINKS(TEIL(A14;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A14;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A14;3;999)));FINDEN("!";TEIL(A14;3;999));FINDEN("?";TEIL(A14;3;999)));FINDEN(".";TEIL(A14;3;999))))
B15 =LINKS(TEIL(A15;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A15;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A15;3;999)));FINDEN("!";TEIL(A15;3;999));FINDEN("?";TEIL(A15;3;999)));FINDEN(".";TEIL(A15;3;999))))
B16 =LINKS(TEIL(A16;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A16;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A16;3;999)));FINDEN("!";TEIL(A16;3;999));FINDEN("?";TEIL(A16;3;999)));FINDEN(".";TEIL(A16;3;999))))
B17 =LINKS(TEIL(A17;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A17;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A17;3;999)));FINDEN("!";TEIL(A17;3;999));FINDEN("?";TEIL(A17;3;999)));FINDEN(".";TEIL(A17;3;999))))
B18 =LINKS(TEIL(A18;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A18;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A18;3;999)));FINDEN("!";TEIL(A18;3;999));FINDEN("?";TEIL(A18;3;999)));FINDEN(".";TEIL(A18;3;999))))
B19 =LINKS(TEIL(A19;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A19;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A19;3;999)));FINDEN("!";TEIL(A19;3;999));FINDEN("?";TEIL(A19;3;999)));FINDEN(".";TEIL(A19;3;999))))
B20 =LINKS(TEIL(A20;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A20;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A20;3;999)));FINDEN("!";TEIL(A20;3;999));FINDEN("?";TEIL(A20;3;999)));FINDEN(".";TEIL(A20;3;999))))
B21 =LINKS(TEIL(A21;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A21;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A21;3;999)));FINDEN("!";TEIL(A21;3;999));FINDEN("?";TEIL(A21;3;999)));FINDEN(".";TEIL(A21;3;999))))
B22 =LINKS(TEIL(A22;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A22;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A22;3;999)));FINDEN("!";TEIL(A22;3;999));FINDEN("?";TEIL(A22;3;999)));FINDEN(".";TEIL(A22;3;999))))
B23 =LINKS(TEIL(A23;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A23;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A23;3;999)));FINDEN("!";TEIL(A23;3;999));FINDEN("?";TEIL(A23;3;999)));FINDEN(".";TEIL(A23;3;999))))
B24 =LINKS(TEIL(A24;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A24;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A24;3;999)));FINDEN("!";TEIL(A24;3;999));FINDEN("?";TEIL(A24;3;999)));FINDEN(".";TEIL(A24;3;999))))
B25 =LINKS(TEIL(A25;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A25;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A25;3;999)));FINDEN("!";TEIL(A25;3;999));FINDEN("?";TEIL(A25;3;999)));FINDEN(".";TEIL(A25;3;999))))
B26 =LINKS(TEIL(A26;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A26;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A26;3;999)));FINDEN("!";TEIL(A26;3;999));FINDEN("?";TEIL(A26;3;999)));FINDEN(".";TEIL(A26;3;999))))
B27 =LINKS(TEIL(A27;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A27;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A27;3;999)));FINDEN("!";TEIL(A27;3;999));FINDEN("?";TEIL(A27;3;999)));FINDEN(".";TEIL(A27;3;999))))
B28 =LINKS(TEIL(A28;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A28;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A28;3;999)));FINDEN("!";TEIL(A28;3;999));FINDEN("?";TEIL(A28;3;999)));FINDEN(".";TEIL(A28;3;999))))
B29 =LINKS(TEIL(A29;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A29;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A29;3;999)));FINDEN("!";TEIL(A29;3;999));FINDEN("?";TEIL(A29;3;999)));FINDEN(".";TEIL(A29;3;999))))
B30 =LINKS(TEIL(A30;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A30;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A30;3;999)));FINDEN("!";TEIL(A30;3;999));FINDEN("?";TEIL(A30;3;999)));FINDEN(".";TEIL(A30;3;999))))
B31 =LINKS(TEIL(A31;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A31;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A31;3;999)));FINDEN("!";TEIL(A31;3;999));FINDEN("?";TEIL(A31;3;999)));FINDEN(".";TEIL(A31;3;999))))
B32 =LINKS(TEIL(A32;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A32;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A32;3;999)));FINDEN("!";TEIL(A32;3;999));FINDEN("?";TEIL(A32;3;999)));FINDEN(".";TEIL(A32;3;999))))
B33 =LINKS(TEIL(A33;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A33;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A33;3;999)));FINDEN("!";TEIL(A33;3;999));FINDEN("?";TEIL(A33;3;999)));FINDEN(".";TEIL(A33;3;999))))
B34 =LINKS(TEIL(A34;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A34;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A34;3;999)));FINDEN("!";TEIL(A34;3;999));FINDEN("?";TEIL(A34;3;999)));FINDEN(".";TEIL(A34;3;999))))
B35 =LINKS(TEIL(A35;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A35;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A35;3;999)));FINDEN("!";TEIL(A35;3;999));FINDEN("?";TEIL(A35;3;999)));FINDEN(".";TEIL(A35;3;999))))
B36 =LINKS(TEIL(A36;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A36;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A36;3;999)));FINDEN("!";TEIL(A36;3;999));FINDEN("?";TEIL(A36;3;999)));FINDEN(".";TEIL(A36;3;999))))
B37 =LINKS(TEIL(A37;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A37;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A37;3;999)));FINDEN("!";TEIL(A37;3;999));FINDEN("?";TEIL(A37;3;999)));FINDEN(".";TEIL(A37;3;999))))
B38 =LINKS(TEIL(A38;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A38;3;999)));WENN(ISTFEHLER(FINDEN("?";TEIL(A38;3;999)));FINDEN("!";TEIL(A38;3;999));FINDEN("?";TEIL(A38;3;999)));FINDEN(".";TEIL(A38;3;999))))

Tabellendarstellung in Foren Version 4.11


Die Zellen, in denen nur "Müll" steht, kannst du sicher manuell löschen, ansonsten könnte man noch eine WENN/DANN Abfrage darumstricken.
Anschließend könntest du noch die Hilfsspalte mit Kopieren, Inhalte einfügen-Werte auf den Datenbereich überschreiben.
Gruß
David
Anzeige
AW: bestimmte Zeichen löschen
13.04.2010 12:18:30
Karsten
Hallo David,
absolute Spitze. Danke! Es wäre, soweit ich es richtig überblicke, nur noch "&" zuviel. Habe es versuch, mit in die Formel einzubauen, aber es gelang mir nicht.
Gruß
Karsten
AW: bestimmte Zeichen löschen
13.04.2010 12:36:29
David
Hallo Karsten,
das & ist mir gar nicht aufgefallen. Kriegst du so weg:
=WECHSELN(LINKS(TEIL(A3;3;999);WENN(ISTFEHLER(FINDEN(".";TEIL(A3;3;999)));WENN(ISTFEHLER(FINDEN("?"; TEIL(A3;3;999)));FINDEN("!";TEIL(A3;3;999));FINDEN("?";TEIL(A3;3;999)));FINDEN(".";TEIL(A3;3;999)))); "&";"")
Gruß
David
Anzeige
AW: bestimmte Zeichen löschen
13.04.2010 12:53:21
Lena
Hallo David,
nun ist es perfekt.
Danke.
Gruß
Karsten
loooooooooooooooool
13.04.2010 12:57:17
Oberschlumpf
Hi Karsten, Hallo Lena (mit Karsten "unterschrieben")
hahahahhahaha
wenn man sich schon - wann auch immer - mit falschem Namen ausgibt, dann sollte man nich so blöd sein...aber ihr seht ja selbst...grins
Das ist hier der gleiche Grund, warum so...
15.04.2010 17:13:30
Luc:-?
…viele (Re)Antworter einen unpassenden Betreff beibehalten, Thorsten;
es wurde ihnen vorgegeben… !;-))
Nach dem Prinzip fktt übrigens auch der Medien-Mainstream…
Gruß Luc :-?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bestimmte Zeichen in Excel löschen


Schritt-für-Schritt-Anleitung

Um in Excel bestimmte Zeichen zu löschen, die keine "richtigen Buchstaben" sind, kannst du den folgenden VBA-Code verwenden. Dieser Code nutzt die RegEx-Funktionalität, um nicht alphabetische Zeichen zu entfernen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Wähle im Menü Einfügen die Option Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Sub Nur_Text()
    Dim Regex As Object
    Dim meAr(), nCount&, lngMaxRow&

    With Sheets("Tabelle1") ' Tabelle anpassen
        lngMaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        meAr = .Range("A1", .Cells(lngMaxRow, 1)).Value2

        Set Regex = CreateObject("Vbscript.RegExp")
        With Regex
            .MultiLine = True
            .Global = True

            For nCount = 1 To UBound(meAr)
                .Pattern = "[^A-Za-z .!?,äüöß]"
                meAr(nCount, 1) = .Replace(meAr(nCount, 1), " ")
            Next nCount
        End With

        .Range("A1").Resize(UBound(meAr)) = meAr
    End With
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus, indem du ALT + F8 drückst und das Makro Nur_Text auswählst.

Häufige Fehler und Lösungen

  • Fehler: "Objekt nicht gefunden"
    Lösung: Stelle sicher, dass der Tabellenname in .With Sheets("Tabelle1") korrekt ist.

  • Fehler: Das Makro führt nicht aus
    Lösung: Überprüfe, ob die Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter > Einstellungen für Makros und aktiviere die Makros.


Alternative Methoden

Eine einfache Methode ohne VBA besteht darin, Excel-Formeln zu verwenden. Hier ist ein Beispiel:

  1. Nutze die Funktion WECHSELN, um unerwünschte Zeichen zu ersetzen:
    =WECHSELN(A1; "unwanted_character"; "")
  2. Kombiniere mehrere WECHSELN-Funktionen, um mehrere Zeichen zu entfernen.

Praktische Beispiele

Angenommen, du hast in Zelle A1 den Text "H3ll0 W0rld!" und möchtest nur die Buchstaben und Leerzeichen behalten:

  • Mit VBA: Führe das obenstehende Makro aus.
  • Mit Formel:
    =WECHSELN(WECHSELN(WECHSELN(A1; "3"; ""); "0"; ""); "!"; "")

Das Ergebnis wäre "Hll Wrld" in der Zelle, nachdem die unerwünschten Zeichen entfernt wurden.


Tipps für Profis

  • Verwendung von RegEx: Die Verwendung von RegEx ist nicht nur für das Löschen von Zeichen effizient, sondern auch für komplexe Muster. Experimentiere mit verschiedenen Mustern, um spezifische Anforderungen zu erfüllen.
  • Makros speichern: Speichere deine Arbeitsmappe als Excel-Arbeitsmappe mit Makros (.xlsm), um sicherzustellen, dass dein VBA-Code nicht verloren geht.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass mein Makro funktioniert?
Achte darauf, dass die Tabelle, auf die du zugreifst, existiert und die richtigen Daten enthält.

2. Kann ich diese Methode auch auf andere Tabellen anwenden?
Ja, ändere einfach den Tabellennamen im Code, um die gewünschte Tabelle anzusprechen.

3. Was, wenn ich nur bestimmte Zeichen entfernen möchte?
Passe das RegEx-Muster im Code an, um nur die gewünschten Zeichen zu entfernen.

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