habe es mit Hilfe des Forums geschafft mal was mit einer eigenen Klasse hinzubekommen.
Beim ändern einer Textbox wird sie automatisch formatiert. Klappt.
Frage: wenn ich nun einige wenige Textboxen anders formatieren lassen will, wie muß ich das anghen? Muß ich die in der Sub init explizit aussparen, oder in der Userform bei dem Change-Ereignis der jeweiligen textbox eingreifen, oder wie macht man das am besten?
Bin für jeden Tip dankbar.
So sieht das momentan aus:
Public AnzCombobox As Integer
Public AnzTextBox As Integer
Im Klassenmodul clsText:
Option Explicit
Option Base 1
Public WithEvents clsText As MSForms.TextBox
Private Sub clsText_Change()
clsText.Value = Format(clsText, "#,##0.00")
clsText.TextAlign = fmTextAlignRight
End Sub
Klassenmodul der Userform:
Private Sub UserForm_Activate()
Call init 'initialisiert die Klassenmodule
End Sub
Hier erfolgt die Zuweisung der Comboboxen zur neuen Klasse
Sub init()
Dim i%
Dim strObjname As String
ReDim ctlCombo(AnzCombobox)
ReDim ctlText(AnzTextBox)
With frmBestellungGS 'Comboboxen
For i = 1 To AnzCombobox
strObjname = "ComboBox" & i
Set ctlCombo(i).clsCombo = .Controls(strObjname)
Next
End With
With frmBestellungGS 'Textboxen
For i = 1 To AnzTextBox
strObjname = "TextBox" & i
Set ctlText(i).clsText = .Controls(strObjname)
Next
End With
End Sub
Gruß Jens