Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
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
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

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.

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige