Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CheckBox
BildScreenshot zu CheckBox CheckBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Aktivieren / Deaktivieren von Checkboxen

    Betrifft: Aktivieren / Deaktivieren von Checkboxen von: Andreas Emmert
    Geschrieben am: 29.09.2003 20:28:49

    Hallo,

    folgender Sachverhalt. Ich habe 60 Checkboxen auf meinen Spreadsheet, die sofern der Haken gesetzt ist dieser mittels VBA werden soll. Wie kann ich das lösen?

    Bisher sehe ich nur die Möglichkeit, dies mit einem separaten Aufruf für jede Checkbox zu machen:

    CheckBox1.Value = False
    CheckBox2.Value = False
    CheckBox3.Value = False
    CheckBox4.Value = False
    ......

    Geht das irgendwie einfacher?

    Danke schonmal für die Hilfe!

    Andreas

      


    Betrifft: AW: Aktivieren / Deaktivieren von Checkboxen von: Hajo_Zi
    Geschrieben am: 29.09.2003 20:31:06

    Hallo Andreas

    mach ein Schleife

    Option Explicit
    ' erstellt von Hajo Ziplies 21.12.2002
    ' http://home.media-n.de/ziplies/

    Private Sub CommandButton1_Click()
        Dim CoCb As Control
        Dim InI As Integer
        For Each CoCb In Me.Controls
            If Left(CoCb.Name, 8) = "CheckBox" Then
                If CoCb.Value = True Then MsgBox "Aktion für Checkbox" & _
                    Mid(CoCb.Name, 9, Len(CoCb.Name) - 8)
            End If
        Next
    End Sub
    


    Grußformel

    Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
    Bitte kein Mail, Probleme sollen im Forum gelöst werden.

    Microsoft MVP für Excel

    Das Forum lebt auch von den Rückmeldungen.

    Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.

    Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen.
    Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
    Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
    Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.


    http://home.media-n.de/ziplies/



      


    Betrifft: AW: Aktivieren / Deaktivieren von Checkboxen von: Andreas
    Geschrieben am: 29.09.2003 20:41:00

    Danke erst mal Hajo!

    So ganz verstanden habe ich die For/Each Schleife leider noch nicht, wie kann das anpassen für ein Sheet mit dem Namen "Indikationsliste" anpassen? Me.Controls müsste ich dann wohl ersetzen, denn damit geht es nicht. ActiveSheet.Controls geht auch nicht, irgendwie stehe ich gerade auf der Leitung ... sorry, wenn die Frage ein wenig dümmlich sein sollte ....

    Andreas

    Dim CoCb As Control

    For Each CoCb In Me.Controls
    If Left(CoCb.Name, 8) = "CheckBox" Then
    If CoCb.Value = True Then
    CoCb.Value = False
    End If
    End If
    Next


      


    Betrifft: AW: Aktivieren / Deaktivieren von Checkboxen von: Hajo_Zi
    Geschrieben am: 29.09.2003 20:53:37

    Hallo Andreas

    das mit in der Tabelle habe ich überlesen. Ich bin nicht der Fachman für Steueelemente in der Tabelle. Vielleicht hilft folgender Ansatz.

    Private Sub CommandButton1_Click()
        Dim I As Integer
        For I = 1 To Shapes.Count
            If Mid(Shapes(I).Name, 1, 5) = "Check" Then
    '           Ausblenden
    '            Shapes(I).Visible = Shapes(I).Visible = False
    '           wechseln
    '            Shapes(I).Visible = Shapes(I).Visible = Shapes(I).Visible = Shapes(I).Visible = False
    '           Wert auf True setzen
                ActiveSheet.OLEObjects("CheckBox" & I).Object.Value = 0
    '           Inhalt wechseln
    '            ActiveSheet.OLEObjects("CheckBox" & I).Object.Value = ActiveSheet.OLEObjects("CheckBox" & I).Object.Value = 0
    '           nur eine Gruppe
    '            If ActiveSheet.OLEObjects("CheckBox" & I).Object.GroupName = "Sorte1" Then
    '                Shapes(I).Visible = Shapes(I).Visible = False
            End If
        Next I
    End Sub
    


    Bei dem Code bin ich davon ausgegangen das die Steuerelemente aus Steuerelemente Toolbox sind

    Grußformel

    Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
    Bitte kein Mail, Probleme sollen im Forum gelöst werden.

    Microsoft MVP für Excel

    Das Forum lebt auch von den Rückmeldungen.

    http://home.media-n.de/ziplies/



      


    Betrifft: AW: Aktivieren / Deaktivieren von Checkboxen von: Andreas
    Geschrieben am: 29.09.2003 20:59:06

    Hallo Hajo,

    die Checkboxen sind tatsächlich aus der Steuerelement-Toolbox. Die Checkobxen wurden einfach innerhalb des Tabellenblatts aufgezogen, sind also nicht in einem UserForm, sondern direkt im Tabellenblatt. Deshalb kann ich auch kein UserForm referenzieren, wie es wohl bei deinem ersten Beispiel gedacht war. OLEObjects wird mir wohl auch nicht weiterhelfen, habe es gerade mal kurz angetestet.
    Deinen ersten Ansatz fand ich gut, nur ist mir nicht klar, wie ich die Checkboxen innerhalb eines Tabellenblatts referenzieren kann. ActiveWorksheets.Controls geht ja nicht, irgendeine andere Idee wie ich das angehen kann?

    Andreas


      


    Betrifft: AW: Aktivieren / Deaktivieren von Checkboxen von: K.Rola
    Geschrieben am: 29.09.2003 21:27:50

    Hallo,

    Option Explicit
    Sub cb_false()
    Dim i As Byte
      For i = 1 To 3
        Sheets(1).OLEObjects("CheckBox" & i).Object.Value = False
      Next
    End Sub
    


    Gruß K.Rola


      


    Betrifft: AW: Aktivieren / Deaktivieren von Checkboxen von: Andreas
    Geschrieben am: 29.09.2003 21:29:29

    Habe eine Lösung gefunden, nachdem ich noch ein wenig gegoogelt habe :)

    Dim c As Shape

    For Each c In ActiveSheet.Shapes
    If Left(c.Name, 8) = "CheckBox" Then
    ActiveSheet.OLEObjects(c.Name).Object.Value = 0
    End If
    Next c


     

    Beiträge aus den Excel-Beispielen zum Thema " Aktivieren / Deaktivieren von Checkboxen"