Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
476to480
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
476to480
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Alle Zeichen ausser bestimmte löschen?

Alle Zeichen ausser bestimmte löschen?
30.08.2004 13:14:38
Heiko
Hallo Gemeinde.
Wer kann mir bei meinem Problem weiterhelfen?
Ich möchte aus einem String alle Zeichen entfernen, die nicht in das folgende Schema passen:
"AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz "
Alle anderen Zeichen sollen gnadenlos gelöscht werden.
Meine Versuche mit replase waren bisher ohne Erfolg.
Der String kommt aus einer Textbox, in welche der Anwender seine Angaben gemacht hat. Die Eingabe in die Textbox habe ich bereits so reglementiert:

Private Sub Text1_KeyPress(KeyAscii As Integer)
On Error Resume Next
If InStr("AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÜüÖöÄäß " & Chr(8) & Chr(3) & Chr(22), Chr(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub

Der Anwender soll aber auch Daten über die Zwischenablage erfassen können - dadurch können nicht gewollte Zeichen in die Textbox gelangen.
Danke für Eure Unterstützung

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Zeichen ausser bestimmte löschen?
AndreasSt
Hallo,
hier das ganze als Funktion:

Function OhneSonderzeichen(AlterText As String) As String
On Error Resume Next
Dim NeuerText As String
Dim arStralt() As String, arStrneu() As String
Dim Stralt As String, Strneu As String
Dim i
ReDim arStralt(Len(AlterText) - 1) As String
ReDim arStrneu(Len(AlterText) - 1) As String
For i = 0 To UBound(arStralt)
arStralt(i) = Mid(AlterText, i + 1, 1)
Next i
For i = 0 To UBound(arStralt)
Select Case Asc(arStralt(i))
Case 65 To 90
arStrneu(i) = arStralt(i)
Case 97 To 122
arStrneu(i) = arStralt(i)
Case Else
arStrneu(i) = ""
End Select
Next i
For i = 0 To UBound(arStrneu)
Strneu = Strneu & arStrneu(i)
Next i
OhneSonderzeichen = Strneu
End Function

Gruß
Andreas
Anzeige
Nachtrag: Alle Zeichen ausser bestimmte löschen?
AndreasST
Ach ja:
Dim NeuerText As String
ist überflüssig, also weglassen!
Gruß
Andreas
AW: Alle Zeichen ausser bestimmte löschen?
Uduuh
Hallo,
ein wenig kürzer:

Function CleanText(Txt As String) As String
Dim i As Integer
CleanText = ""
For i = 1 To Len(Txt)
Select Case Asc(Mid(Txt, i, 1))
Case 65 To 90, 97 To 122, 196, 228, 214, 246, 220, 252, 223 'A-Z,a-z,Ä,ä,Ö,ö,Ü,ü,ß
CleanText = CleanText & Mid(Txt, i, 1)
End Select
Next i
End Function

Gruß aus'm Pott
Udo
Danke schön!
Heiko
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige