die Eigenschaft .Tag eines Controls in einer Userform hilft bei so mancher VBAstelei. Als Beispiel: ich ziehe und schreibe den Wert von Checkboxen oder Listinidizes in/aus eine(r) Optionentabelle. Was die Verarbeitung bestimmter Sets von Optionen natürlich vereinfacht. Alle Controls durchnudeln und in die Tabelle schreiben - und umgekehrt. Dabei ist die jeweilige Spalte als Tag im Control gespeichert.
Gibt es ein Tag noch nicht (weil als Reserve für später geplant), soll dafür aber auch keine Wert geschrieben werden. Hier am Beispiel Spalte 16 / P.
Code: Alles auswählen
Sub NoOptions() 'alle Optionen deaktivieren
Dim rng As Range
With PM
Set rng = Range(.Cells(1, 8), .Cells(1, 21))
.Columns(8).Clear
rng.Cells.Clear
End With
End Sub
Sub AllOptions() 'alle Optionen aktivieren + BeispielParameter
Dim rng As Range, ctr As Control
With PM
Set rng = Range(.Cells(1, 9), .Cells(1, 21))
rng.Cells = "x"
On Error Resume Next 'Typenkonflikt, weil CBX noch leer
.Cells(1, 8) = "1|2"
.Cells(1, 9) = "1"
.Cells(1, 12) = 2
.Cells(1, 15) = "1,1"
For Each ctr In usfPrintManager.Controls 'Tags für ReserveOptionen aussparen
If Not ctr.Tag = "16" Then
.Cells(1, 16) = ""
Else
.Cells(1, 16) = "x"
End If
Next
End With
End Sub

Schöne Grüße