Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1412to1416
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
48 CheckBoxen aufeinmal leeren
04.03.2015 17:08:15
Heinz
Hallo Leute
Wie könnte ich in einer UF die CheckBoxen 2-49 aufeinmal leeren?
Private Sub ComboBoxLinie_Change()
'CheckBoxen leeren
CheckBox2.Value = False
Gruß, Heinz

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 48 CheckBoxen aufeinmal leeren
04.03.2015 17:12:03
Daniel
Hi
wenn die Checkboxen so benannt sind:
dim i as long
for i = 2 to 49
Me.Controls("CheckBox" & i).Value = False
next
Gruß Daniel

Daniel Danke, heute zum zweiten mal
04.03.2015 17:14:10
Heinz
Hallo Daniel
Einfach wunderbar.
Recht herzlichen Dank.
Gruß, Heinz

Code verkürzen?
04.03.2015 17:41:59
Heinz
Hallo Daniel
Könnte man auch hier den Code verkürzen?
Es handelt sich auch um CheckBox2 bis CheckBox49
  • 'Checkbox von WAHR auf 1 stellen
    Private Sub CheckBox2_Click()
    CheckBox2.Visible = IIf(CheckBox2.Value = "WAHR", 0, 1) * 1
    End Sub
    

    Private Sub CheckBox3_Click()
    CheckBox3.Visible = IIf(CheckBox3.Value = "WAHR", 0, 1) * 1
    End Sub
    


  • Gruß, Heinz

    Anzeige
    AW: Code verkürzen?
    04.03.2015 18:01:52
    Daniel
    Hi
    ich gehe mal davon aus, dass du nicht für alle Checkboxen das Click-Event erstellen willst, sondern ein Klick-Eventmakro, welches dann für die Checkboxen 2-49 gilt.
    das geht prinzipell mit der sog. Klassenprogrammierung, aber damit kenne ich mich nicht aus.
    Gruß Daniel

    Danke Daniel
    04.03.2015 18:06:45
    Heinz
    Hallo Daniel
    Dann werde ich den Code so belassen.
    Recht herzlichen Dank.
    Gruß, Heinz

    AW: Code verkürzen?
    05.03.2015 09:49:05
    Nepumuk
    Hallo,
    füge in dein Projekt ein neues Klassenmodul ein (Menüleiste - Einfügen - Klassenmodul). Ändere den Namen des Klassenmodul im Eigenschaftsfenster von Klasse1 zu clsCheckBox. In dieses Klassenmodul kommt folgender Code:
    ' **********************************************************************
    ' Modul: clsCheckBox Typ: Klassenmodul
    ' **********************************************************************

    Option Explicit

    Private WithEvents mchkBox As MSForms.CheckBox

    Private Sub Class_Terminate()
        Set CheckBox = Nothing
    End Sub

    Friend Property Get CheckBox() As MSForms.CheckBox
        CheckBox = mchkBox
    End Property

    Friend Property Set CheckBox(ByRef prchkBox As MSForms.CheckBox)
        Set mchkBox = prchkBox
    End Property

    Private Sub mchkBox_Click()
        mchkBox.Visible = Not mchkBox.Value
    End Sub

    In das Modul des UserForms kommt folgender Code:
    ' **********************************************************************
    ' Modul: UserForm1 Typ: Userform
    ' **********************************************************************

    Option Explicit

    Private colCheckBoxClass As Collection

    Private Sub UserForm_Activate()
        Dim objCheckboxClass As clsCheckBox
        Dim lngIndex As Long
        Set colCheckBoxClass = New Collection
        For lngIndex = 2 To 49
            Set objCheckboxClass = New clsCheckBox
            Set objCheckboxClass.CheckBox = Controls("CheckBox" & CStr(lngIndex))
            colCheckBoxClass.Add objCheckboxClass
        Next
        Set objCheckboxClass = Nothing
    End Sub

    Private Sub UserForm_Terminate()
        Set colCheckBoxClass = Nothing
    End Sub

    Gruß
    Nepumuk

    Anzeige
    Danke Nepumuk
    05.03.2015 19:15:16
    Heinz
    Hallo Nepumuk
    Echt geile Sache,die du hier gebastelt hast !!
    Recht herzlichen D A N K !!!
    Gruß, Heinz

    299 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige