Thema Datum  Von Nutzer Rating
Antwort
30.03.2016 09:49:10 Benjamin
NotSolved
Blau Checkbox Schleife
30.03.2016 18:10:28 Gast70117
NotSolved

Ansicht des Beitrags:
Von:
Gast70117
Datum:
30.03.2016 18:10:28
Views:
596
Rating: Antwort:
  Ja
Thema:
Checkbox Schleife

Hattu OLEObjects - activeX Controlls am Tabellenblatt, dann für deine Beschreibung

Private Sub CheckBox12_Click()
Dim oOle As Excel.OLEObject
Dim oRow As Long

oRow = CheckBox12.TopLeftCell.Row
With ActiveSheet
   For Each oOle In .OLEObjects
    If TypeName(oOle.Object) = "CheckBox" Then
      If oOle.TopLeftCell.Row = oRow Then
         If oOle.Name <> "CheckBox12" Then
            oOle.Object.Value = CheckBox12.Object.Value
         End If
      End If
    End If
   Next oOle
End With
End Sub

Eleganter geht die Geschichte, wenn du einen eigene Klasse mit dem Change-Ereignis für alle Checkboxen auf dem Arbeitsblatt verwendest

Code für die Klasse (als clsChkBoxes benennen)

Option Explicit

Public WithEvents Cbox As MSForms.CheckBox
 
Public Property Set Reference(c As MSForms.CheckBox)
   Set Cbox = c
End Property
 
Private Sub Cbox_change()

Dim oOle As Excel.OLEObject
Dim oRow As Long
With ActiveSheet
   For Each oOle In .OLEObjects
      If oOle.Name = Cbox.Name Then Exit For
   Next oOle
   oRow = oOle.TopLeftCell.Row
   For Each oOle In .OLEObjects
      If oOle.TopLeftCell.Row = oRow Then oOle.Object.Value = Cbox.Value
   Next oOle
End With

End Sub

Die Klasse baust du beim Öffnen der Arbeitsmappe auf - z.B. für Tabelle1

Option Explicit

Dim myCollection As Collection
 
Private Sub Workbook_Open()

Dim oOle As Excel.OLEObject
Dim oChkBoxes As New clsChkBoxes
     
   Set myCollection = New Collection
   For Each oOle In Sheets("Tabelle1").OLEObjects
      If TypeName(oOle.Object) = "CheckBox" Then
         Set oChkBoxes = New clsChkBoxes
         Set oChkBoxes.Reference = oOle.Object
         myCollection.Add oChkBoxes
      End If
   Next oOle
     
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
30.03.2016 09:49:10 Benjamin
NotSolved
Blau Checkbox Schleife
30.03.2016 18:10:28 Gast70117
NotSolved