ich schreibe gerade an einem Makro und möchte in diesem Zusammenhang ein UserForm automatisch mit Checkboxen befüllen lassen:
Sub Userform_Fuellen()
' Definition und Deklaration der lokalen Variablen
Dim l_MSF_FaelleCheckBox As MSForms.CheckBox
Dim l_dbl_UserFormHoehe As Double
Dim l_dbl_CheckBoxausgangsposition As Double
Dim g_str_alleFaelle(3) As String
g_str_sheet = ActiveWorkbook.ActiveSheet.Name
l_dbl_UserFormHoehe = 50
l_dbl_CheckBoxausgangsposition = 20
' Auslesen der Faelle
g_str_alleFaelle(0) = "Fall_1"
g_str_alleFaelle(1) = "Fall_2"
g_str_alleFaelle(2) = "Fall_3"
g_str_alleFaelle(3) = "Fall_4"
Load UserForm1
' befüllen des Userforms
For i = 0 To UBound(g_str_alleFaelle)
Set l_MSF_FaelleCheckBox = UserForm1.Controls.Add("forms.CheckBox.1", g_str_alleFaelle( _
_
_
i), True)
With l_MSF_FaelleCheckBox
.Caption = g_str_alleFaelle(i)
.Height = l_dbl_CheckBoxausgangsposition
End With
l_dbl_CheckBoxausgangsposition = l_dbl_CheckBoxausgangsposition + 40
l_dbl_UserFormHoehe = 200
UserForm1.Height = l_dbl_UserFormHoehe
Next i
UserForm1.Show
End Sub
Das Sub ist in einem Modul geschrieben und greift auf ein existierendes UserForm zu.
Das Problem besteht darin, dass mir nur die letzte Checkbox eingetragen wird.
Wenn der Befehl UserForm1.Show innerhalb der Schleife ausgeführt wird, sieht man das die Checkboxen eingetragen werden und anschließend im nächsten Schleifendurchgang anscheinend gelöscht werden. wie kann ich das verhindern?
Danke und Gruß
Marco