Kontrollkästchen deaktvieren mit Makro

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Kontrollkästchen deaktvieren mit Makro von: Alex
Geschrieben am: 11.03.2005 09:44:10

Hi Excelgurus,

habe zwei Tabellenblätter mit mit acht kontrollkästchen. Jetzt möchte ich gerne per makro erreichen das er mir per knopfdruck die kästchen deaktiviert.
Habe folgenden Makro aufgezechnet

Sub Makro8()
    ActiveSheet.Shapes("Check Box 30").Select
    ActiveSheet.Shapes.Range(Array("Check Box 30", "Check Box 31")).Select
    ActiveSheet.Shapes.Range(Array("Check Box 30", "Check Box 31", "Check Box 25")) _
        .Select
    ActiveSheet.Shapes.Range(Array("Check Box 30", "Check Box 31", "Check Box 25", _
        "Check Box 24")).Select
    ActiveSheet.Shapes.Range(Array("Check Box 30", "Check Box 31", "Check Box 25", _
        "Check Box 24" _
    , "Check Box 26")).Select
    ActiveSheet.Shapes.Range(Array("Check Box 30", "Check Box 31", "Check Box 25", _
        "Check Box 24" _
    , "Check Box 26", "Check Box 27")).Select
    ActiveSheet.Shapes.Range(Array("Check Box 30", "Check Box 31", "Check Box 25", _
        "Check Box 24" _
    , "Check Box 26", "Check Box 27", "Check Box 29")).Select
    ActiveSheet.Shapes.Range(Array("Check Box 30", "Check Box 31", "Check Box 25", _
        "Check Box 24" _
    , "Check Box 26", "Check Box 27", "Check Box 29", "Check Box 28")).Select
    With Selection
        .Value = xlOff
        .LinkedCell = ""
        .Display3DShading = True
    End With
    Sheets("Blatt2").Select
    ActiveSheet.Shapes("Check Box 14").Select
    ActiveSheet.Shapes.Range(Array("Check Box 14", "Check Box 15")).Select
    ActiveSheet.Shapes.Range(Array("Check Box 14", "Check Box 15", "Check Box 9")). _
        Select
    ActiveSheet.Shapes.Range(Array("Check Box 14", "Check Box 15", "Check Box 9", _
        "Check Box 8")).Select
    ActiveSheet.Shapes.Range(Array("Check Box 14", "Check Box 15", "Check Box 9", _
        "Check Box 8" _
    , "Check Box 10")).Select
    ActiveSheet.Shapes.Range(Array("Check Box 14", "Check Box 15", "Check Box 9", _
        "Check Box 8" _
    , "Check Box 10", "Check Box 11")).Select
    ActiveSheet.Shapes.Range(Array("Check Box 14", "Check Box 15", "Check Box 9", _
        "Check Box 8" _
    , "Check Box 10", "Check Box 11", "Check Box 13")).Select
    ActiveSheet.Shapes.Range(Array("Check Box 14", "Check Box 15", "Check Box 9", _
        "Check Box 8" _
    , "Check Box 10", "Check Box 11", "Check Box 13", "Check Box 12")).Select
    With Selection
        .Value = xlOff
        .LinkedCell = ""
        .Display3DShading = True
    End With
End Sub



leider kommt dann die Fehlermeldung.

Die Value-Eigenschaft des DrawingObjects-Objektes kann nichtfestgelegt werden.


Kann mir einer sagen wo der fehler ist oder ob jemand einen anderen Lsungsweg kennt um die Kästchen zu deaktivieren

Vielen Dank im Vorraus

Alex
Bild


Betrifft: AW: Kontrollkästchen deaktvieren mit Makro von: bst
Geschrieben am: 11.03.2005 10:39:37

Morgen Alex,

versuch mal sowas.

HTH, Bernd
--
Option Explicit

Sub UnCheck()
   Dim ws As Worksheet
   Dim oo As OLEObject
   
   For Each ws In Worksheets(Array("Blatt1", "Blatt2"))
      For Each oo In ws.OLEObjects
         If TypeName(oo.Object) = "CheckBox" Then
            oo.Object.Value = False
         End If
      Next oo
   Next ws
End Sub



Bild


Betrifft: AW: Kontrollkästchen deaktvieren mit Makro von: Matthias G
Geschrieben am: 11.03.2005 10:44:38

Hallo Alex,

da es Kontrollkästchen aus der Formular-Symbolleiste zu sein scheinen, mein Vorschlag hier:
Sub Deaktivieren()
Dim i As Integer
With Sheets("Blatt1")
    For i = 24 To 31
        .Shapes("Check Box " & i).ControlFormat = False
    Next i
End With
With Sheets("Blatt2")
    For i = 8 To 15
        .Shapes("Check Box " & i).ControlFormat = False
    Next i
End With
End Sub
Gegebenfalls den ersten Blattnamen noch anpassen.

Gruß Matthias


Bild


Betrifft: AW: Kontrollkästchen deaktvieren mit Makro von: UweD
Geschrieben am: 11.03.2005 11:03:22

Hallo

so gehts:

Sub alle_aus() 'für CB aus Formular Sybolleiste
    Dim TB, CB As CheckBox
    For Each TB In Array(Sheets(1), Sheets(2))
        For Each CB In TB.CheckBoxes
            CB = False
        Next
    Next
End Sub


https://www.herber.de/bbs/user/19505.xls

Gruß UweD


Bild


Betrifft: AW: Kontrollkästchen deaktvieren mit Makro von: bst
Geschrieben am: 11.03.2005 11:12:09

Hallo Uwe,

stimmt so geht's. Aber laut der VBA-Hilfe zu CheckBoxes in xl2000 (!) sind diese Teile
ausgeblendet (veraltet?) und sollten durch die neueren ActiveX-Steuerelemente ersetzt werden.

cu, Bernd


Bild


Betrifft: AW: Kontrollkästchen deaktvieren mit Makro von: bst
Geschrieben am: 11.03.2005 11:20:45

@Uwe,

Sorry, ist sich wohl nicht so mein Tag :-(

Man sollte halt schon zwischen Formular und Steuerelement-Toolbox unterscheiden ...

Bernd


Bild


Betrifft: Vielen Dank für Eure hilfe klappt super. o.T von: Alex
Geschrieben am: 11.03.2005 12:03:03

Vielen Dank für Eure hilfe klappt super. o.T

Gruß Alex


 Bild

Beiträge aus den Excel-Beispielen zum Thema "OptionButtons in einer Schleife abfragen"