Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeichen in Textbox unterdrücken

Zeichen in Textbox unterdrücken
12.02.2021 17:14:52
Baron
Hallo Zusammen
Weil ein Ordner gem. dem Textbox-Text betittelt wird möchte ich die Eingabe einiger Zeichen unterdrücken. Ich verstehe scheinbar die Select Case Anweisung nicht richtig.
Sofern es geht möchte ich es mit Select Case gebacken kriegen. Mir ist bewusst, dass ich mit einigen IF 's das Gewollte auch ereichen würde. Was mach ich falsch?
Vielen Dank

Private Sub TXTB_Objekt_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim strX As String
Dim MeSg As String
MeSg = "Obejektname darf keines der folgenden Zeichen enthalten:" & vbNewLine & "/\?*|:" & """ _
_
With Me.TXTB_Objekt
.Text = RTrim(.Text)
Select Case InStr(.Text, strX) > 0
Case strX = "/"
MsgBox MeSg
.Text = Application.WorksheetFunction.Substitute(.Text, strX, "")
Case strX = """"
MsgBox MeSg
.Text = Application.WorksheetFunction.Substitute(.Text, strX, "")
Case strX = "\"
MsgBox MeSg
.Text = Application.WorksheetFunction.Substitute(.Text, strX, "")
Case strX = ""
MsgBox MeSg
.Text = Application.WorksheetFunction.Substitute(.Text, strX, "")
Case strX = "?"
MsgBox MeSg
.Text = Application.WorksheetFunction.Substitute(.Text, strX, "")
Case strX = "*"
MsgBox MeSg
.Text = Application.WorksheetFunction.Substitute(.Text, strX, "")
Case strX = "|"
MsgBox MeSg
.Text = Application.WorksheetFunction.Substitute(.Text, strX, "")
Case strX = ":"
MsgBox MeSg
.Text = Application.WorksheetFunction.Substitute(.Text, strX, "")
End Select
End With
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zeichen in Textbox unterdrücken
12.02.2021 17:20:36
Hajo_Zi
es soll ja die Eingabe verhindert werden.
in der Art.
Private Sub Txt_Zeit_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'   Eingabe Uhrzeit die Doppelunkte automatisch gesetzt
'   sie können nur gelöscht durch markierung des punktes und der Zahl davor
'   Buchstaben werden ausgeschlossen, nur Zahlen und Doppelunkt
'   die Überprüfung ob Uhrzeit erfolgt in Private Sub Txt_Zeit_AfterUpdate()
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc(":")
If Len(Txt_Zeit) = 0 Then
KeyAscii = 0
Else
' Prüfen ob mehr als 2 x :
If Len(Txt_Zeit) - Len(Application.Substitute(Txt_Zeit, ":", "")) = 2 Then
KeyAscii = 0
'   Prüfen das : nicht an Stelle1
ElseIf Len(Txt_Zeit) > 1 Then
' Prüfen ob letztes Zeichen
If Mid(Txt_Zeit, Len(Txt_Zeit), 1) = ":" Then KeyAscii = 0
End If
End If
Case Else
KeyAscii = 0
End Select
End Sub

Anzeige
AW: Zeichen in Textbox unterdrücken
12.02.2021 17:26:26
Baron
Vielen Dank Hajo
KeyPress kannte ich noch garnicht, werde es damit realisieren (versuchen).
Dennoch; was ist mein Überlegungsfehler?
Gruss
AW: Zeichen in Textbox unterdrücken
12.02.2021 17:37:48
Nepumuk
Hallo,
strX ist ein leerer String, woher soll der seinen Wert haben?
Wenn, dann so:
Private Sub TXTB_Objekt_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    
    Dim lngIndex As Long, lngLength As Long
    
    With TXTB_Objekt
        
        .Text = Trim$(.Text)
        
        lngLength = .TextLength
        
        For lngIndex = lngLength To 1 Step -1
            
            Select Case Mid$(.Text, lngIndex, 1)
                    
                Case "/"
                    
                    .Text = Replace(.Text, "/", "")
                    
                Case Chr$(34)
                    
                    .Text = Replace(.Text, Chr$(34), "")
                    
                Case "\"
                    
                    .Text = Replace(.Text, "\", "")
                    
                Case "<"
                    
                    .Text = Replace(.Text, "<", "")
                    
                Case ">"
                    
                    .Text = Replace(.Text, ">", "")
                    
                Case "?"
                    
                    .Text = Replace(.Text, "?", "")
                    
                Case "*"
                    
                    .Text = Replace(.Text, "*", "")
                    
                Case "|"
                    
                    .Text = Replace(.Text, "|", "")
                    
                Case ":"
                    
                    .Text = Replace(.Text, ":", "")
                    
            End Select
        Next
        
        If .TextLength < lngLength Then _
            MsgBox "Obejektname darf keines der folgenden Zeichen enthalten:" & vbLf & vbLf & "/\<>?*|:" & Chr$(34)
        
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Zeichen in Textbox unterdrücken
12.02.2021 17:48:00
Baron
Danke Nepumuk. Einmal mehr.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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