Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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)                              
Antworten Top
#2
Kannst Du das auf Checkboxen umsetzen
[-] Folgende(r) 1 Nutzer sagt Danke an Storax für diesen Beitrag:
  • radagast
Antworten Top
#3
Hallo,

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

EDIT: genau das aus dem Link von Storax meine ich.
VG Sabina

bei mir läuft Win 7 32-Bit - Office 2010 Pro Plus 32-Bit und Office 2016 Pro Plus 32-Bit
Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
[-] Folgende(r) 1 Nutzer sagt Danke an Flotter Feger für diesen Beitrag:
  • radagast
Antworten 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)                              
Antworten 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
Antworten 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)                              
Antworten 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)                              
Antworten 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
Antworten 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
Antworten 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)                              
Antworten Top


Gehe zu:


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