Hallo zusammen,
ich habe ein Frage wie ich meinen Code einfach gestalten kann und vorallem komprimieren kann. Mir graut es davor wenn ich mir vorstelle ich müsste zum Schluss noch etwas anpassen. Folgende Ausgangssituation:
VBA Userform; 8 Checkboxen mit dahinter jeweils 5 Objekten (Textboxen, Kombiboxen und einer Datumsbox)
Alle Objetzte haben als default Wert bei Enabled = False (die Objekte sind also gesperrt) Und der Hintergrund ist per default in einem Grau, so dass das Feld ausgegraut erscheint.
Wenn dieCheckbox aktiviert wird, sollen alle dahinterliegnde Objekte entsperrt werden + Hintergrundfarbe auf weiß. Wenn der Haken wieder aus der Checkbox rausgenommen wird sollen alle Objekte wieder gesperrt werden und grau sein.
Ich habe das mit folgendem Code gelöst (Beispiel nur für die erste Zeile und drei Objekte):
If Check1 = True Then
'Objekteentsperren
Box1.Enabled = True
Box1.BackColor = vbWhite
Box2.Enabled = True
Box2.BackColor = vbWhite
Date1.Enabled = True
Date1.CalendarBackColor = vbWhite
Else
'Wenn Haken wieder bei Checkbox entfernt wird Objekte wieder sperren
Box1.Enabled = False
Box1.BackColor = &H8000000F
....usw.
End If
Ich glaube das ist viel zu Aufwendig und es gibt bestimmt deutlich elegantere Wege.
Ich freue mich auf euer Feedback.
VG Jerome
|