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:
738
Rating: Antwort:
  Ja
Thema:
Checkbox Schleife

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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