Code vereinfachen
09.11.2022 10:23:15
Sascha
Ich bin in VBA nicht sehr bewandert und deswegen sind meine Codes meistens sehr umständlich und umfangreich.
Jetzt habe ich wieder ein VBA-Thema, das eigentlich sehr einfach zu lösen aber auch sehr zeitaufwändig ist.
Folgender Code:
Private Sub Checkbox1_Click()
If CheckBox1.Value = False Then ActiveSheet.Range("G3").ClearContents: ActiveSheet.Range("G3") = "0": ActiveSheet.Range("A3:G3").Interior.ColorIndex = 0: ActiveSheet.Range("B3:G3").Font.Color = RGB(255, 255, 255): CheckBox1.Value = False
If CheckBox1.Value = True Then ActiveSheet.Range("A3:G3").Interior.ColorIndex = 35: ActiveSheet.Range("B3:G3").Font.Color = RGB(0, 0, 0): CheckBox1.Value = True
End Sub
Private Sub Checkbox2_Click()
If CheckBox2.Value = False Then ActiveSheet.Range("G4").ClearContents: ActiveSheet.Range("G4") = "0": ActiveSheet.Range("A4:G4").Interior.ColorIndex = 0: ActiveSheet.Range("B4:G4").Font.Color = RGB(255, 255, 255): CheckBox2.Value = False
If CheckBox2.Value = True Then ActiveSheet.Range("A4:G4").Interior.ColorIndex = 35: ActiveSheet.Range("B4:G4").Font.Color = RGB(0, 0, 0): CheckBox2.Value = True
End Sub
Private Sub Checkbox3_Click()
If CheckBox3.Value = False Then ActiveSheet.Range("G5").ClearContents: ActiveSheet.Range("G5") = "0": ActiveSheet.Range("A5:G5").Interior.ColorIndex = 0: ActiveSheet.Range("B5:G5").Font.Color = RGB(255, 255, 255): CheckBox3.Value = False
If CheckBox3.Value = True Then ActiveSheet.Range("A5:G5").Interior.ColorIndex = 35: ActiveSheet.Range("B5:G5").Font.Color = RGB(0, 0, 0): CheckBox3.Value = True
End Sub
Das wiederholt sich jetzt noch so weiter für 120 Checkboxen.
Mit jeder Checkbox verschiebt sich alles um eine Zeile (Checkbox 1 für Zeile 3, Checkbox2 für Zeile 4, usw.)
Jetzt meine Frage: gibt es da nicht einen einfacheren Weg das Ganze in VBA zu schreiben damit ich nicht für 120 Checkboxen immer dasselbe Prozedere durchtippen muss?
Bin für jede Hilfe sehr dankbar.