Herbers Excel-Forum - das Archiv
Funktion klappt nicht warum?
Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Betrifft: Funktion klappt nicht warum?
von: Micha
Geschrieben am: 03.11.2003 09:42:49
HAllo!
Ich will eine Funktion die die Eingabe in einer Textbox abfängt ob ein Semikolon eingeben wird und dann den Text ohne Semikolon zurücksetzt. Hab schon was funktioniert aber nicht warum?
Function OhneSemi(strEingabe As String) As String
Dim i As Byte
Dim char As String
'*** StrEingabe ist nicht leer, wenn diese Funktion aufgerufen wird!
For i = 1 To Len(strEingabe)
char = Mid$(strEingabe, i, 1)
If char = ";" Then
MsgBox "Die Eingabe eines Semikolons ist aus syntaktischen Gründen nicht zulässig!"
OhneSemi = (strEingabe - ";")
Exit Function
End If
Next
End Function
Betrifft: Unterbinde doch direkt das Semikolon...
von: Boris
Geschrieben am: 03.11.2003 09:53:40
Hi Micha,
...indem du das Textbox-Change-Ereignis nutzt:
Private Sub TextBox1_Change()
If Right(TextBox1, 1) = ";" Then TextBox1 = Left(TextBox1, Len(TextBox1) - 1)
End Sub
Könnte man auch über den Asc-Code und das Keydown-Ereignis machen - aber wie sooft gibt´s viele Excelwege, die zum Ziel führen.
Grüße Boris
Betrifft: AW: Unterbinde doch direkt das Semikolon...
von: Reinhard
Geschrieben am: 03.11.2003 10:17:16
Hallo,
da ja auch mehrere Semikola drin sein könnten.
Gruß
Reinhard
Function OhneSemi(strEingabe As String) As String
Dim Semi As Boolean
'*** StrEingabe ist nicht leer, wenn diese Funktion aufgerufen wird!
Semi = False
While InStr(strEingabe, ";") <> 0
Semi = True
x = InStr(strEingabe, ";")
strEingabe = Left(strEingabe, x - 1) & Right(strEingabe, len(strEingabe) - x)
Wend
OhneSemi = strEingabe
If Semi = True Then
MsgBox "Die Eingabe eines Semikolons ist nicht zulässig! Semikolons wurden entfernt"
End If
End Function
Betrifft: Ich verstehe nicht...
von: Boris
Geschrieben am: 03.11.2003 10:24:42
Hi Reinhard,
"...da ja auch mehrere Semikola drin sein könnten."
Das Change-Ereignis unterbindet (bei jedem Tastendruck) die Eingabe eines Semikolons - insofern kann man überhaupt keins eingeben...
Grüße Boris
Betrifft: Du hast jain Recht :-)
von: Reinhard
Geschrieben am: 03.11.2003 11:12:28
Hallo Boris,
an sich wolte ich ja direkt zu Micha antworten, das ging wohl schief.
Text-Boxen kenne ich nicht so, deshalb war mir das Change Ereignis egal, ich habe mich rein auf seine Funktion bezogen und nahm halt an, dass beim Aufruf der Funktion im Parameter strEingabe mehrere Semikolons sein könnten.
Gruß
Reinhard
Betrifft: Das Übel an der Wurzel zu packen...
von: Boris
Geschrieben am: 03.11.2003 13:56:27
Hi Reinhard,
...und die Eingabe der fraglichen Zeichen gar nicht erst zuzulassen erscheint mir aber doch der sinnvollere Weg, als im Nachhinein Falscheingaben durch irgendwelche Funktionen wieder "grade zu biegen".
Aber sei´s drum - soll sich Micha was aussuchen.
Grüße Boris
Betrifft: Stimmt. o.w.T.
von: Reinhard
Geschrieben am: 03.11.2003 18:10:34
.