Microsoft Excel

Herbers Excel/VBA-Archiv

Alle Zeichen ausser bestimmte löschen?

Betrifft: Alle Zeichen ausser bestimmte löschen? von: Heiko
Geschrieben am: 30.08.2004 13:14:38

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
  


Betrifft: AW: Alle Zeichen ausser bestimmte löschen? von: AndreasSt
Geschrieben am: 30.08.2004 13:35:36

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


  


Betrifft: Nachtrag: Alle Zeichen ausser bestimmte löschen? von: AndreasST
Geschrieben am: 30.08.2004 13:38:10

Ach ja:

Dim NeuerText As String

ist überflüssig, also weglassen!

Gruß
Andreas


  


Betrifft: AW: Alle Zeichen ausser bestimmte löschen? von: Uduuh
Geschrieben am: 30.08.2004 13:39:14

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


  


Betrifft: Danke schön! von: Heiko
Geschrieben am: 30.08.2004 14:52:54

.


 

Beiträge aus den Excel-Beispielen zum Thema "Alle Zeichen ausser bestimmte löschen?"