zb.: check1, check4, check 19 wurden ausgewählt:
dann sollte in dem label als caption "check1, check4, check 19 sind aktiv" stehen.
Private Sub CheckBox1_Click() UpdateLabel End Sub
Private Sub CheckBox2_Click() UpdateLabel End Sub' Fügen Sie hier Checkbox3 bis Checkbox20_Click Ereignisse hinzu.
Private Sub UpdateLabel() Dim i As Integer Dim checkedBoxes As String ' Iterieren Sie über alle Checkboxen auf der UserForm For i = 1 To 20 ' Wenn die Checkbox ausgewählt ist, fügen Sie die Beschriftung hinzu If Controls("CheckBox" & i).Value = True Then checkedBoxes = checkedBoxes & Controls("CheckBox" & i).Caption & ", " End If Next i ' Entfernen Sie das Komma am Ende und aktualisieren Sie die Label Caption If Len(checkedBoxes) > 0 Then checkedBoxes = Left(checkedBoxes, Len(checkedBoxes) - 2) ' entfernen Sie das letzte Komma und Leerzeichen Label1.Caption = checkedBoxes & " sind aktiv." Else Label1.Caption = "Keine Checkbox ausgewählt." End If End SubIch will nicht für jede Checkbox das Click Event aufrufen, geht das auch über eine Schleife
Private Sub CheckBox1_Click()
GetCaption
End Sub
Private Sub CheckBox2_Click()
GetCaption
End Sub
Private Sub CheckBox3_Click()
GetCaption
End Sub
Sub GetCaption()
Dim c As Control, t As String
For Each c In Me.Controls
If TypeName(c) = "CheckBox" Then
If c = True Then
t = t & ", " & c.Caption
End If
End If
Next
If Len(t) Then t = Mid(t, 3) & " aktiv"
Label1.Caption = t
End Sub
GrußPrivate Sub UserForm_Initialize() Label1.Caption = "Keine Checkbox ausgewählt." End Sub
Private Sub CheckBox_Click() UpdateLabel End Sub
Private Sub UpdateLabel() Dim i As Integer Dim checkedBoxes As String For i = 1 To 20 If Controls("CheckBox" & i).Value = True Then checkedBoxes = checkedBoxes & Controls("CheckBox" & i).Caption & ", " End If Next i If Len(checkedBoxes) > 0 Then checkedBoxes = Left(checkedBoxes, Len(checkedBoxes) - 2) Label1.Caption = checkedBoxes & " sind aktiv." Else Label1.Caption = "Keine Checkbox ausgewählt." End If End Sub
Private Sub CheckBox_Click() UpdateLabel End Subwie kann ich diese Sub aufrufen ohne das ich für jede Checkbox das Click-Ereignis eingeben muß?
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("DeinCheckboxenBereich"), Range(Target.Address)) Is Nothing Then
UpdateLabel Target.Address
End If
End Sub
UpdateLabel soll dann mit dem Target.Address erkennen, welches CheckBox geklickt wurde.
Label1.Caption = ""
for i = 0 to Listbox1.Count - 1
if Listbox1.Selected(i) then Label1.Caption = Label1.Caption & Listbox1.List(i) & ", "
next
wenn man es nicht aus optischen Gründen braucht, ist eine Listbox inder Regel einfacher zu handhaben als eine Optionbutton- oder Checkboxgruppe.Private Sub ListBox1_Click() Label1.Caption = "" For i = 0 To ListBox1.Count - 1 If ListBox1.Selected(i) Then Label1.Caption = Label1.Caption & ListBox1.List(i) & ", " Next End SubLabel1 bleibt leer
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen