AW: Label gruppieren für Ereignis
08.11.2006 20:20:52
fcs
Hallo Mathias,
ein Gruppierung z.B. durch Rahmen ist nicht möglich.
Du kannst aber durch sytematische Namen (Änderbar unter Eigenschaften bei der Erstellung des Userforms) für die Labels dafür sorgen, dass du die Eigenschaften der Labels in Schleifen ändern kannst.
Die Systematik für die Gruppierung sieht so aus, dass die 1. Zeichen der Labels identisch sind gefolgt von einer je nach Anzahl der Labels 1 oder 2 stellige Zählziffer
Beispiel: Labelnamen: lblName01, lblName02, lblName03, lblName04, usw.
Der code für das Umschalten (hier per Togglebutton) der Sichtbarkeit der Labels sieht dann z.B. so aus:
Private Sub ToggleButton1_Click()
Dim Element As Control
If Me.ToggleButton1.Value = True Then
Me.ToggleButton1.Caption = "Labels EIN"
For Each Element In UserForm1.Controls
If Left(Element.Name, 7) = "lblName" Then
Element.Visible = False
End If
Next
Else
Me.ToggleButton1.Caption = "Labels AUS"
For Each Element In UserForm1.Controls
If Left(Element.Name, 7) = "lblName" Then
Element.Visible = True
End If
Next
End If
End Sub
In ähnlicher Weise kann man die Eigenschaften solcher systematisch benannter Control-Elemente setzen/abfragen indem man den Namen und die Zählnummer in einer For-Next-Schleife generiert.
Private Sub CB_LabelsEin_Click()
For I = 1 To 5
UserForm1.Controls("lblName" & Format(I, "00")).Visible = True
Next
End Sub
Private Sub CB_LabelsAus_Click()
For I = 1 To 5
UserForm1.Controls("lblName" & Format(I, "00")).Visible = False
Next
End Sub
Gruss
Franz