Viele Checkbox'es auf einer UF ansprechen...
#1
Heje Excelfreunde,

Auf UF befinden sich 100 Checkbox'es. Wie anhand des Bsp. gezeigt, werden auf der UF mit den CheckBox'es
viele Ausschlußmöglichkeiten tabellenartig erstellt. Auf Grund der Großen Anzahl müsste aber für jedes Click-Ereignis ein Code wie im im Bsp. gezeigt erstellt werden.
Gibt es eine elegantere Form/Möglichkeit , die CheckBox'es "1-100" anzusprechen oder muss für jede ein Click-Ereignis erstellt werden...


Code:
Private Sub CheckBox1_Click()
    If CheckBox1.Value = True Then
        CheckBox1.Caption = "Ausschluß"
        CheckBox1.BackColor = &H80000016
    Else
        CheckBox1.Caption = ""
        CheckBox1.BackColor = &H80000004
    End If
End Sub
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Top
#2
Kannst Du das auf Checkboxen umsetzen
[-] Folgende(r) 1 Nutzer sagt Danke an Storax für diesen Beitrag:
  • radagast
Top
#3
Hallo,

um die Klicks aller CheckBoxen abzufangen, brauchst du eine Object-Klasse.

EDIT: genau das aus dem Link von Storax meine ich.
[-] Folgende(r) 1 Nutzer sagt Danke an Flotter Feger für diesen Beitrag:
  • radagast
Top
#4
Heje Excelfreunde, Storax und Flotter Feger,

nach einigem Hin und Her...

KlasseModul

Code:
Option Explicit
Public WithEvents CheckBoxGroup As Msforms.CheckBox

Private Sub CheckBoxGroup_Click()
   If CheckBoxGroup.Value = True Then
       CheckBoxGroup.Caption = "Ausschluß"
       CheckBoxGroup.BackColor = &H80000016
   Else
      CheckBoxGroup.Caption = ""
       CheckBoxGroup.BackColor = &H80000004
   End If
End Sub


NormalesModul

Code:
   Dim CheckBoxCount As Integer
   Dim ctl As control
   
   On Error GoTo Fehler
    
'   Create the checkBox objects
   CheckBoxCount = 0
   For Each ctl In UserForm5.Controls
       If TypeName(ctl) = "CheckBox" Then
           If ctl.Value <> 1 Then 'Skip the OKButton
               CheckBoxCount = CheckBoxCount + 1
               ReDim Preserve CheckBoxs(1 To CheckBoxCount)
              Set CheckBoxs(CheckBoxCount).CheckBoxGroup = ctl
           End If
       End If
   Next ctl
   UserForm5.Show vbModal
Code:
Option Explicit
Option Private Module
Dim CheckBoxs() As New clsCheckBox

so funktioniert es...
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Top
#5
Code:
Public WithEvents M_Check As Msforms.CheckBox

Private Sub M_Check_Click()
 M_Check.Caption = iif(M_Check.value,"Ausschluß",""
 M_Check.BackColor = &H80000016 -14*M_Check.value
End Sub


Im Userform Modul:

Code:
Dim sn() as new clsCheckbox

Private Sub Userform_Initialize
  redim sn(controls.count)

 For Each it In Controls
   If TypeName(it) = "CheckBox" Then set sn(it.tabindex)=it
 Next
Edn Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • radagast
Top
#6
Heje Excelfreunde, snb,

ich wiederhole mich gerne, DANKE...aber auch nochmals an alle Anderen...
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Top
#7
Heje Excelfreunde, Storax, Flotter Feger und snb


habe mich im KlassModul zu diesem Lösungsansatz durchgerungen...
Code:
Option Explicit
Public WithEvents CheckBoxGroup As Msforms.CheckBox

Private Sub CheckBoxGroup_Click()
 CheckBoxGroup.Caption = IIf(CheckBoxGroup.Value, "Ausschluß", "")
 CheckBoxGroup.BackColor = IIf(CheckBoxGroup.Value, &H80000016, &H80000004)
End Sub
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Top
#8
Oder ?


Code:
Private Sub CheckBoxGroup_Click()
 With CheckBoxGroup
   .Caption = IIf(.Value, "Ausschluß", "")
  .BackColor = IIf(.Value, &H80000016, &H80000004)
  end with
End Sub

Weiter lesen: https://www.snb-vba.eu/VBA_Userform_invo...le_en.html
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#9
@Radagast: Hier zwar nicht relevant, aber was unser Freund immer gerne verschweigt, sind Nebenwirkungen
Ausschnitt aus der Doku
Zitat:IIf wertet immer sowohl truepart als auch falsepart aus, auch wenn nur einer dieser Ausdrücke zurückgegeben wird.
Sie sollten deshalb auf unerwünschte Nebeneffekte achten. Wenn die Auswertung von falsepart beispielsweise zu einer
Division durch Null führt, tritt ein Fehler auf, auch wenn expr true ist.
[-] Folgende(r) 1 Nutzer sagt Danke an Storax für diesen Beitrag:
  • maninweb
Top
#10
heje Excelfreunde, snb, Storax,

snb: - habe deinen Vorschlage selber im nachhinein nach meinem Eintrag umgesetzt, auch der "link" top zu studieren...

Storax: - Danke für den Hinweis....
Vielen Dank
--Janosch
                                                     
Excel  2019 (64bit)  Win 10 Pro (64bit)                              
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste