Microsoft Excel

Herbers Excel/VBA-Archiv

Kontrollkästchen als Formularsteuerelement


Betrifft: Kontrollkästchen als Formularsteuerelement
von: Martin Metz
Geschrieben am: 28.11.2018 15:21:09

Hallo geschätzte Expertengemeinschafft,

ich habe folgendes Problem:

Ich habe eine Zeile mit verschiedenen Kontrollkästchen als Formularsteuerelement. Beim Anklicken eines Kontrollkästchens wird in der Zelle daneben das Datum eingetragen. Bei einem Makro greifen beide Kontrollkästchen auf dieselbe Zelle zu.
Aktuell sieht das so aus:

  • 
    
    Sub Kontrollkästchen19_Klicken()
    Range("c2") = Date
    End Sub


    Sub Kontrollkästchen20_Klicken()
    Range("g2") = Date
    End Sub


    Sub Kontrollkästchen17_Klicken()
    Range("g2") = Date
    End Sub


    Sub Kontrollkästchen21_Klicken()
    Range("j2") = Date
    End Sub


    Sub Kontrollkästchen22_Klicken()
    Range("m2") = Date
    End Sub


    Sub Kontrollkästchen23_Klicken()
    Range("p2") = Date
    End Sub


    Sub Kontrollkästchen24_Klicken()
    Range("r2") = Date
    End Sub


    Sub Kontrollkästchen25_Klicken()
    Range("t2") = Date
    End Sub


    Sub Kontrollkästchen26_Klicken()
    Range("v2") = Date
    End Sub



  • Nun möchte ich diese Konfiguration in weitere Zeilen darunter einfügen. Die Kontrollkästchen einfach zu kopieren geht ja nicht, da die Makros immer die oben genannten Zellen füllen. Wenn sich das Kontrollkästchen aber in Zeile 4 befindet, dann muss z.B. auch die Zelle t4 gefüllt werden usw.

    Müssen hier nun endlos viele Kontrollkästchen eingefügt und diesen jeweils ein eigenes Makro zugeordnet werden, oder gibt es hier eine schnellere Lösung.
    Vielen Dank für eure Hilfe.

      

    Betrifft: AW: anderes Konzept
    von: Fennek
    Geschrieben am: 28.11.2018 15:37:24

    Hallo,

    am besten ist es Kontrollkästchen zu vermeiden bzw z.B. durch Events zu ersetzen.

    Falls es unabdingbar ist, sollte man EIN Kontrolkästchen mit dem "Selection_Change-Event" positionieren und dann jeweils in die benachbarte Zelle das Datum eintragen.

    mfg


      

    Betrifft: AW: Kontrollkästchen als Formularsteuerelement
    von: Daniel
    Geschrieben am: 28.11.2018 15:38:07

    Hi

    bei Formularsteuerelementen kannst du im Code das Steuerelement, welches das Makro aufruft, abfragen und damit auch die Zelle, in welcher sich das Kästchen befindet ermitteln.
    damit kannst du dann einen Code schreiben, der für alle Kästchen verwendet werden kann:

    wenn also das Datum immer in die Zelle neben dem Kästchen soll:

    Sub BeiKlickFürAlleKästchen()
    ActiveSheet.Shapes(Application.Caller).TopLeftCell.Offset(0, 1).Value = Date
    End sub
    wobei sich die Frage stellt, ob man bei sehr vielen solchen Kästchen nicht besser das BeforeDoubleClick-Event der Zellen verwendet.
    Damit spart man sich dann das erstellen der Steuerelemente.

    Gruß Daniel