Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1904to1908
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code vereinfachen

Code vereinfachen
09.11.2022 10:23:15
Sascha
Hallo zusammen.
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.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code vereinfachen
09.11.2022 10:24:49
Oberschlumpf
Hi Sascha
zeig doch mal per Upload ne Bsp-Datei mit Bsp-Daten (wenn erforderlich) auf jeden Fall mit deinem Code.
Ciao
Thorsten
AW: Code vereinfachen
09.11.2022 11:04:25
Oberschlumpf
Hallo wird hier gern gelesen...
hier, teste mal
https://www.herber.de/bbs/user/156107.xlsm
Ich hab den Code für CheckBox1 bis ...Box3 angepasst.
Für ...Box4 bis ...Box10 schaffst du, oder?
Hilfts?
Ciao
Thorsten
AW: Code vereinfachen
09.11.2022 11:14:56
Sascha
Super, vielen Dank Thorsten.
Das hat mir sehr weitergeholfen.
Gruß,
Sascha
Anzeige
AW: Code vereinfachen
09.11.2022 14:01:02
Daniel
Hi
da solltest du komplett ohne Checkbox und Code arbeiten.
schreibe in die Spalte H einfach "a" oder "i", je nachdem ob das Projekt aktiv oder in aktiv ist.
die Färbung regelst du über Bedingte Formatierung (Regelformel: für die Zellen ist: =$H2="a")
damit die Summe in Spalte G stimmt, summierst du nur die aktiven mit =SummeWenns(G2:G12;H2:H12;"a")
hätte auch den Vorteil, dass du den Effort nicht nochmal eingeben musst, wenn du von inaktiv auf aktiv zurückschaltest.
Gruß Daniel
AW: Code vereinfachen
09.11.2022 11:05:04
Daniel
Hi
Ohne Checkbox.
Nutze den Doppelklick und das dazugehörige BeforeDoubleclick-Event um den Code auszulösen.
Dort ist Target die Variable, die die angeklickte Zelle enthält, aus welcher du dann die Zeilennummer ableiten kannst.
Ob der True- oder Falsefall vorliegt, ermittelst du, indem du dir Farbe einer der betroffenen Zellen abfragst.
Gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige