Private Sub UserForm_Initialize()
AnzMitarbeiter = UBound(MitarbeiterNameArray)
Me.Height = Me.Height + 15 * AnzMitarbeiter + 20 + 10
Me.AbbruchCommandButton.Top = Me.AbbruchCommandButton.Top + 15 * (AnzMitarbeiter) + 20 + 10
Me.OKCommandButton.Top = Me.OKCommandButton.Top + 15 * (AnzMitarbeiter) + 20 + 10
For CheckBoxZähler = 1 To AnzMitarbeiter
CheckBoxName = Bereinigt(MitarbeiterNameArray(CheckBoxZähler)) & "CheckBox"
Set CheckBox_i = Controls.Add("Forms.CheckBox.1", CheckBoxName)
CheckBox_i.Left = 6
CheckBox_i.Top = 15 * (CheckBoxZähler) '18
CheckBox_i.Width = 99
CheckBox_i.Height = 20
CheckBox_i.Caption = MitarbeiterNameArray(CheckBoxZähler)
CheckBox_i.BackStyle = fmBackStyleTransparent
Next CheckBoxZähler
'alleCheckBox
CheckBoxName = "alleCheckBox"
Set CheckBox_i = Controls.Add("Forms.CheckBox.1", CheckBoxName)
CheckBox_i.Left = 6
CheckBox_i.Top = 15 * (CheckBoxZähler) + 8
CheckBox_i.Width = 99
CheckBox_i.Height = 20
CheckBox_i.Caption = "alle Mitarbeiter"
CheckBox_i.BackStyle = fmBackStyleTransparent
End Sub
passe ich eine Userform zur Laufzeit an, so dass im Dialogfenster für jeder im Tabellenblatt gefundene Mitarbeiter (MitarbeiterNameArray) ein Kontrollkästchen und zusätzlich eine Kontrollkästchen "alle Mitarbeiter" exisitiert.
Nun will ich das Ereignis des Anhakens/ Haken-Entfernens dieses letzten Kontrollkästchens abfangen.
Ich dachte das mit
Private Sub alleCheckBox_Click()
End Sub
zu erreichen, obwohl das Kontrollkästchen erst während der Laufzeit erzeugt und benannt wird.
Aber nichts passiert.
Könnt Ihr mir helfen?
Danke im Voraus
Adi
Set OK_Button = Kurse_aktualisieren.Designer.Controls.Add("Forms.CommandButton.1")
With OK_Button
.Left = 124
.Top = 30 + 20 * (Anzahl_Aktien + 2)
.Width = 48
.Height = 18
.Caption = "OK"
.Cancel = False
.Default = True
.Name = "Command_OK"
End With
Set Abbruch_Button = Kurse_aktualisieren.Designer.Controls.Add("Forms.CommandButton.1")
With Abbruch_Button
.Left = 208
.Top = 30 + 20 * (Anzahl_Aktien + 2)
.Width = 48
.Height = 18
.Caption = "Abbruch"
.Cancel = True
.Default = False
.Name = "Command_Abbruch"
End With
Set Kopieren_CheckBox = Kurse_aktualisieren.Designer.Controls.Add("Forms.CheckBox.1")
With Kopieren_CheckBox
.Left = 240
.Top = 6
.Height = 15
.Caption = "Kopieren"
.Value = False
.Name = "Kopieren_CheckBox"
End With
' hier wird der dazu gehörige Code zur Laufzeit erzeugt:
' Definition des Code Modules für das Formular
With Kurse_aktualisieren.CodeModule
i = .CountOfLines
If i = 2 Then
.InsertLines i, "": i = i + 1
Else
i = 1
End If
' Definition der Prozedur für den OK Button
.InsertLines i, "Private Sub Command_OK_Click()": i = i + 1
.InsertLines i, "Datum_Pub = Datum_neu": i = i + 1
.InsertLines i, "Abbruch = False": i = i + 1
.InsertLines i, "LeereEingabe = False": i = i + 1
.InsertLines i, "Kopieren_Kurse_Kommentar = Kopieren_Kurse_Wert.Value": i = i + 1
For Index = 1 To Anzahl_Aktien
.InsertLines i, "If Feldwert_" + CStr(Index) + ".Value """" Then": i = i + 1 ' """" _
= "", da sonst das Ende des Strings erkannt würde
.InsertLines i, " Kurs_Pub(" + CStr(Index) + ") = Feldwert_" + CStr(Index) + ".Value" _
: i = i + 1
.InsertLines i, "Else": i = i + 1
.InsertLines i, " LeereEingabe = True": i = i + 1
.InsertLines i, "End If": i = i + 1
Next Index
.InsertLines i, "Unload Me": i = i + 1
.InsertLines i, "End Sub": i = i + 1
' Definition der Prozedur für den Abbruch Button
.InsertLines i, "Private Sub Command_Abbruch_Click()": i = i + 1
.InsertLines i, "Abbruch = True": i = i + 1
.InsertLines i, "Unload Me": i = i + 1
.InsertLines i, "End Sub": i = i + 1
' Definition der Prozedur für das Schließen Feld. Hier Schließen = Abbruch
.InsertLines i, "Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)" _
: i = i + 1
.InsertLines i, "If CloseMode = vbFormControlMenu Then Abbruch = True": i = i + 1
.InsertLines i, "End Sub": i = i + 1
' Definition der Prozedur für die Kopieren Checkbox
Kopieren_Kurs = False
.InsertLines i, "Private Sub Kopieren_CheckBox_Click()": i = i + 1
.InsertLines i, "If Kopieren_CheckBox.Value = False Then": i = i + 1
.InsertLines i, "Kopieren_Kurse_Label.Visible = False": i = i + 1
.InsertLines i, "Kopieren_Kurse_Wert.Visible = False": i = i + 1
For Index = 1 To Anzahl_Aktien
.InsertLines i, "Feldwert_" + CStr(Index) + ".Value = """"": i = i + 1
Next Index
.InsertLines i, "Else": i = i + 1
.InsertLines i, "Kopieren_Kurs = True": i = i + 1
.InsertLines i, "Kopieren_Kurse_Label.Visible = True": i = i + 1
.InsertLines i, "Kopieren_Kurse_Wert.Visible = True": i = i + 1
For Index = 1 To Anzahl_Aktien
.InsertLines i, "Feldwert_" + CStr(Index) + ".Value = Letzter_Kurs(" + CStr(Index) + ") _
": i = i + 1
Next Index
.InsertLines i, "End If": i = i + 1
.InsertLines i, "End Sub": i = i + 1
End With
Unelegant, aber läuft seit Jahren.
Gruß Harald