Herbers Excel-Forum - das Archiv

Funktion klappt nicht warum?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
TextBox
Bild

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


Bild

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
Bild

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


Bild

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
Bild

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
Bild

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
Bild

Betrifft: Stimmt. o.w.T.
von: Reinhard
Geschrieben am: 03.11.2003 18:10:34
.
Bild
Excel-Beispiele zum Thema " Funktion klappt nicht warum?"
Funktion ANZAHL2 ohne ausgeblendete Spalten Mit der Indirekt-Funktion auf geschlossene Arbeitsmappe zugreifen
Benutzerdefinierte SVERWEIS-Funktion über mehrere Bereiche Alle Prozeduren und Funktionen auflisten
In Funktionskategorie einordnen Ausgabe einer benutzerdefinierten Funktion in Matrixformel
Benutzerdefinierte Funktion durch Code erstellen und löschen Ermittlung von Entfernungen über benutzerdefinierte Funktion
Handhabung von Arrays in benutzerdefininierten Funktionen Arbeitsmappen-Titel über benutzerdefinierte Funktion