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.
Anzeige