Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Wie baut man ein allgemeines richtig Modul ein?

Betrifft: Wie baut man ein allgemeines richtig Modul ein? von: Mark
Geschrieben am: 21.06.2006 10:40:26

Hallo Leute,
folgende Sub habe ich im Internet gefunden.
Als Anleitung stand dort:
"Die folgende Sub, in einem allgemeinen Modul untergebracht, kannst Du für alle Textboxen verwenden, die nur Zahlen zulassen sollen".

Habe hier schonmal was probiert. Funktioniert aber nicht richtig!

Bitte helft mir. Wie baut man das richtig zusammen.
Gruß
-Mark-

Hier der Link zum Beispiel:
https://www.herber.de/bbs/user/34518.xls

Hier der Code:

'Nur Zahlen, die Backtaste, Punkt, Komma und "-"(Minus) werden
'anerkannt. Punkt und Komma nur einmal. "-" nur am Anfang.
'Hierbei wird bei eventueller Markierung der Textbox ein Komma/"-"
'zugelassen, obwohl dieses evtl. bereits vorhanden ist. Sonst wäre
'die TextBox bei Selektierung für diese Zeichen blockiert.

Sub NurZahl(Textfeld As TextBox, KeyAscii As Integer)
Select Case KeyAscii 'Übergebener Asciicode
'----------------------------------------------------------------
Case 8, 48 To 57 'Backtaste, Tasten 0 bis 9
KeyAscii = KeyAscii
'----------------------------------------------------------------
Case 45 'Taste "-"
If Textfeld.SelStart = 0 Then 'Nur wenn Cursor am Anfang steht
If Left(Textfeld.Text, 1) = "-" And Textfeld.SelLength = Len(Textfeld.Text) _
Then 'Minus-Zeichen bereits da, aber Text ist markiert
KeyAscii = KeyAscii '- zulassen
ElseIf Left(Textfeld.Text, 1) = "-" Then 'Minus-Zeichen ist bereits da
KeyAscii = 0 '- nicht zulassen
End If
Else 'Wenn Cursor nicht am Anfang steht
KeyAscii = 0 '- nicht zulassen
End If
'-----------------------------------------------------------------
Case 44, 46 'Tasten Komma, Punkt
Select Case InStr(1, Textfeld.Text, ",")
Case Is > 0 'Wenn Komma bereits da ist, kann kein
'zweites eingegeben werden(KeyAscii=0)
'es sei denn, der Text ist selektiert.
If Textfeld.SelLength = Len(Textfeld.Text) Then
KeyAscii = KeyAscii
Else
KeyAscii = 0
End If
Case Else 'Wenn nicht wird Punkt zu Komma gemacht.
KeyAscii = 44
End Select
'-----------------------------------------------------------------
Case Else 'Alle anderen Zeichen
KeyAscii = 0 '- nicht zulassen
End Select
End Sub




'Aufruf der Sub im KeyPress-Event der Textboxen, die nur Zahlen
'zulassen sollen:

Private Sub txtPreis_KeyPress(KeyAscii As Integer)
   NurZahl txtPreis, KeyAscii
End Sub





Hier die Quelle:
http://spotlight.de/zforen/amvb/m/amvb-1087766611-13880.html
  


Betrifft: AW: Wie baut man ein allgemeines richtig Modul ein? von: Horst
Geschrieben am: 21.06.2006 17:46:23

Private Sub txtPreis_KeyPress(KeyAscii As Integer)

Das gibt es in dieser Form gar nicht!

mfg Horst


  


Betrifft: AW: Wie baut man ein allgemeines richtig Modul ein? von: Mark
Geschrieben am: 21.06.2006 18:26:52

OK,
Danke