AW: Code für alle Textboxen (Klasse)
06.09.2011 22:50:14
Jonathan
Super, vielen lieben Dank Euch allen!
Aber natürlich noch eine Rückfrage:
Ich konnte mit Hilfe der Beispieldatei eine entsprechende Klasse programmieren, allerdings regiert diese nur auf das Drücken der Enter-Taste; die anderen Ereignisse werden unberücksichtigt gelassen:
UserForm
Option Explicit
Public bBoxVerlassen As Boolean
Dim i As Integer
Dim TxTBoBetrag() As New Klasse1
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 0 To 19
ReDim Preserve TxTBoBetrag(i)
Set TxTBoBetrag(i).km_TxTBoBetrag = Me("txt_betrag" & i + 1)
Next i
End Sub
Private Sub UserForm_Terminate()
Erase TxTBoBetrag
End Sub
Klassenmodul
Option Explicit
Public WithEvents km_TxTBoBetrag As MSForms.TextBox
Public bBoxVerlassen As Boolean
Private Sub km_TxTBoBetrag_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = bBoxVerlassen
bBoxVerlassen = False
End Sub
Private Sub km_TxTBoBetrag_Enter()
Call Betrag_eingeben
End Sub
Private Sub km_TxTBoBetrag_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As _
Integer)
If KeyCode = 13 Then Call Betrag_eingeben
End Sub
Private Sub Betrag_eingeben()
Dim Betrag As String
Eingabe:
Betrag = InputBox(prompt:="Bitte geben Sie den Zahlenwert der Buchung ein; bei bereits _
vorhandenden Beträgen werden diese summiert.", Title:="Betrag eingeben")
If IsNumeric(Betrag) Then
If IsNumeric(km_TxTBoBetrag.Value) Then
km_TxTBoBetrag.Value = WorksheetFunction.sum(CDbl(km_TxTBoBetrag.Value), CDbl(Betrag))
Else
km_TxTBoBetrag.Value = Betrag
End If
Else
If Betrag "" Then
MsgBox "Ihre Eingabe ist kein nummerischer Wert.", vbCritical, "Betrag eingeben"
GoTo Eingabe
End If
End If
bBoxVerlassen = True
End Sub
Ich würde mich sehr freuen, wenn Ihr mir noch helfen könntet! ;-)
VG