ich habe folgendes Problem und würde mich sehr über Hilfe freuen.
Ich habe mehrere Userformen die jeweils für einen bestimmten Bereich zuständig sind. Anzahl und Art der Steuerelemente sind für die Bereiche angepasst. Es gibt aber einige Sachen die (egal von welcher Userform kommend) immer gleich sein sollen. Fast alle Eingaben müssen mit "Return" bestätigt werden und dann soll geprüft werden ob z.B ein Eintrag gemacht worden ist oder dieser Eintrag schon vorhanden ist etc.Nach den Abfragen sollen verschiedene Ereignisse statt finden. z.B werden Comboboxen sichtbar gemacht und gefüllt um weitere Daten zu ermitteln oder die Einträge in ein Tabellenblatt geschrieben. Bislang hatte ich diese Abfragen immer in der jeweiligen Userform, aber mir erscheint dies viel zu aufwendig und ich dachte ich könne dies über Klassenmodule regeln. Mein erster Versuch schaut so aus:
Option Explicit
Public WithEvents TxtBox As MSForms.TextBox
Private Sub Class_Initialize()
Static collTxtBox As New Collection
collTxtBox.Add Me
End Sub
Private Sub TxtBox_Change()
If Not IsNumeric(TxtBox) Then
SendKeys "{BS}"
Beep
End If
End Sub
Private Sub TxtBox_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Weiter = False ' "Weiter" bestimmt ob es im Programm weitergeht. Vor der Prüfung erstmal auf false setzen damit es nicht auf true sein kann
If KeyCode = 13 Then
txtEintragPrüfen ' hier geht es zum Prüfen
End If
End Sub
Sub txtEintragPrüfen()
If TxtBox.Value = "" Then ' wenn Leer dann nochmal
TxtBox.SetFocus
Exit Sub
Else
Weiter = True ' * wenn der Eintrag passt soll es im Programm weitergehen.
End If
End Sub
'* und genau hier liegt mein Hund gerade begraben:
Wie kann ich jetzt im Proramm fortfahren? Bislang stand in der Userform sowas wie:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
txtEin = 1
txtEintragPrüfen
Select Case True
Case Weiter = True
TextBox10.Value = TextBox1.Value
txtEin = 10: txtAus = 10
txtOn
txtOff
Daten(6) = TextBox1.Value
txtAus = 1: cboEin = 10
txtOff
cboOn
cboFüllen
End Select
End If
End Sub
Mein Ziel ist das ich egal aus welcher userform kommend und egal aus welcher Textbox, Combobox, Button die Einträge in einem Modul oder Klassenmodul prüfen lasse und das Programm dann weiter geht.
Ich hoffe ich konnte das Problem verständlich beschreiben und wäre sehr glücklich wenn ihr mir helfen könntet :)