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

Forumthread: Zahlenformat global überprüfen

Zahlenformat global überprüfen
31.07.2008 18:45:00
Andy
Hallo zusammen,
ich bin gerade dabei eine UserForm zu basteln, die ca. 78 TextBoxen hat; diese wird Beträgen ausgefüllt.
Ich habe einen Code, der eine einzelne Box überprüfen kann:

Private Sub TextBox8_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Ansatz VB 6 Buch von Peter Monadjemi
' nur Zahlen, ein Komma und nur 2 Stellen nach Komma
Select Case KeyAscii
Case Asc("0") To Asc("9")
If InStr(TextBox8, ",")  0 Then
If Len(TextBox8) - InStr(TextBox8, ",") > 1 Then KeyAscii = 0
End If
Case Asc("."), Asc(",")
If InStr(TextBox8, ",")  0 Then
KeyAscii = 0
Else
KeyAscii = Asc(",")
End If
Case Asc(vbBack)
'       Eingabe von minus
Case Asc("-")
'            If Len(Textbox8) = 0 Then
'                If InStr(Textbox8, "-")  0 Then
'                Else
'                    KeyAscii = Asc("-")
'                End If
'            Else
'                KeyAscii = 0
'            End If
Case Else
KeyAscii = 0
End Select
End Sub


Jetzt zu meiner Frage:
Kann mir jemand helfen, einen Code zu schreiben, den ich global einsetzen kann und den ich nicht jeder TextBox zuordnen muß? -
quasi eine Sub, die ich dann nur bei der Aktualisierung der jeweiligen TextBox abfrage?
Ich hoffe Ihr versteht mich...
LG
Andy

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zahlenformat global überprüfen
31.07.2008 20:14:00
Gerd
Hallo Andy!
' **************************************************************
' Modul: UserForm1 Typ = Userform
' **************************************************************
Option Explicit
Dim ufTBKlasse(1 To 3) As clsTextBox

Private Sub UserForm_Initialize()
Dim i As Integer
For i = 1 To 3
Set ufTBKlasse(i) = New clsTextBox
Set ufTBKlasse(i).TB = Me.Controls("TextBox" & i)
Next
End Sub



Private Sub UserForm_Terminate()
Dim i As Integer
For i = 1 To 3
Set ufTBKlasse(i).TB = Nothing
Set ufTBKlasse(i) = Nothing
Next
End Sub


' **************************************************************
' Modul: clsTextBox Typ = Klassenmodul
' **************************************************************
Option Explicit
Public WithEvents TB As MSForms.TextBox


Private Sub TB_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Ansatz VB 6 Buch von Peter Monadjemi
' nur Zahlen, ein Komma und nur 2 Stellen nach Komma
Select Case KeyAscii
Case Asc("0") To Asc("9")
If InStr(TB, ",")  0 Then
If Len(TB) - InStr(TB, ",") > 1 Then KeyAscii = 0
End If
Case Asc("."), Asc(",")
If InStr(TB, ",")  0 Then
KeyAscii = 0
Else
KeyAscii = Asc(",")
End If
Case Asc(vbBack)
'       Eingabe von minus
Case Asc("-")
'            If Len(Textbox8) = 0 Then
'                If InStr(Textbox8, "-")  0 Then
'                Else
'                    KeyAscii = Asc("-")
'                End If
'            Else
'                KeyAscii = 0
'            End If
Case Else
KeyAscii = 0
End Select
End Sub


Gruß Gerd

Anzeige
AW: Zahlenformat global überprüfen
31.07.2008 21:25:40
Andy
Hallo Hajo,
ich denke, das "zuviel vorgenommen" bezieht sich auf die 78 Stk. ;-))))
nein nein...
eigentlich habe ich es so gemeint...
ich habe mehrere TextBox`n die immer im (Zahlen-)Format #0,00 ausgefüllt werden sollen.
Den angegebenen Code kann ich zwar bei allen einzeln aufführen, aber das ist eine ....eiß arbeit ;-)
Ich habe einen Code für die Datumsüberprüfung, und sowas suche ich auch für das Zahlenformat.
Hier mal die Datumsüberprüfung...

Sub Datumsformat_prüfen(feld As Object)
If Not IsNumeric(feld.Value) Then feld.Value = 0
If feld = "" Then feld.Value = 0
If feld = " " Then feld.Value = 0
If BoEnter = True Then Exit Sub
If Len(feld) = 2 Then
If InStr(feld, ".") = 0 And BoEnter = False Then feld = feld & "."
Else
If Len(feld) = 5 Then
If Len(feld) - Len(Application.Substitute(feld, ".", "")) 


... und somit spare ich mir bei jeder TextBox die Eingabe des gesamten Codes;
ich hoffe ich kann mich in meiner "unprofessionellen" Ausdrucksweise verständlich machen...
Wäre super, wenn Du/Ihr mir einen solchen Code zukommen lassen könntet.
LG
Andy

Anzeige
AW: Zahlenformat global überprüfen
01.08.2008 05:56:42
Hajo_Zi
Hallo Andy,
die Anzahl ist egal. Es Bezog sich auf den Level. Siehe Dir mein Beispiel an.
Gruß Hajo
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige