Ich habe eine UserForm erstellt mit mehreren CheckBoxen die deaktiviert eine Zeile ausblendet und aktiviert die Zeile einblendet. zudem werden dabei noch gewisse Zellen gelöscht oder Formeln eingetragen. Das funktioniert soweit gut. Beim initialisieren der UserForm frage ich den Status ab, ob die entsprechende Zeile ein- oder ausgeblendet ist und lasse dabei die jeweilige CheckBox True oder False setzen. Auch dies funktioniert soweit.
Mein Problem ist nun, jedes mal wenn ich die UserForm aufrufe und eine CheckBox von True auf False oder umgekehrt gesetzt wird, wird auch der ganze Code durchlaufen, der beim Klicken auf die CheckBox ausgeführt werden soll. Bei über 100 CheckBoxen dauert das jedes mal eine Weile bis die UserForm offen ist.
Hat jemand eine Idee wie den CheckBox Value verändern kann ohne das gleich der ganze Code hinter der CheckBox durchlaufen wird?
Private Sub UserForm_Initialize()
'Abmessung für die UserForm
Me.Height = 1100
Me.Width = 270
'CheckBoxen einfüllen
Dim i As Integer
Dim cbNr As Integer
cbNr = 1
For i = 7 To 156
If IsEmpty(Cells(i, 1).Value) = False Then
Controls("CheckBox" & cbNr).Caption = Cells(i, 1) & " " & Cells(i, 2)
If Rows(i).Hidden = True Then
Controls("CheckBox" & cbNr) = False
Else
Controls("CheckBox" & cbNr) = True
End If
cbNr = cbNr + 1
End If
Next i
End Sub
Private Sub CheckBox1_Click()
'Variabeln
Dim xcb, xz1, xz2, xbkp_d, xbkp_h, xzUnderste As Integer
xcb = 1
xz1 = 7 'obere Zelle
xz2 = xz1 'untere Zelle
xbkp_d = xz1 'BKP darüber
xbkp_h = xz2 'Haupt BPK
xzUnderste = 8 'Unterste leere Zelle
'Ein_Ausblenden aufrufen
Call EinAusblenden(xcb, xz1, xz2, xbkp_d, xbkp_h, xzUnderste)
End Sub
Ich danke für eure Hilfe