Hantera objektsamlingar i formulär
I detta tips visas hur vi kan loopa igenom en samling objekt för att ange status på dessa vid formuläröppning. Informationen hämtas från ett cellområde, vilket också tar emot statusinformationen vid formulärstängning.En förutsättning är att vi använder oss av ett och samma namn på objekten samt har ett löpnummer för att särskilja dem åt. Enklast är att skapa ett objekt och kopiera det de antal gånger objektet ska förekomma i formuläret.
I exemplet hämtas även titeln för respektive checkbox från ett cellområde.
Option Explicit
Private wbBook As Workbook
Private wsSheet As Worksheet
Private rnValues As Range, rnCell As Range
Private i As Long
Private Sub cmbClose_Click()
'© 2003 Alla rättigheter XL-Dennis
Set wbBook = ThisWorkbook
Set wsSheet = wbBook.Worksheets("Blad1")
With wsSheet
Set rnValues = .Range("B4:B7")
End With
For i = 1 To 4
With Me.Controls("CheckBox" & i)
'Här skrivs respektive CheckBox status till berörda celler.
rnValues(i, 1).Value = .Value
End With
Next i
End Sub
Private Sub UserForm_Initialize()
'© 2003 Alla rättigheter XL-Dennis
Set wbBook = ThisWorkbook
Set wsSheet = wbBook.Worksheets("Blad1")
With wsSheet
Set rnValues = .Range("B4:B7")
End With
For i = 1 To 4
With Me.Controls("CheckBox" & i)
'Här sätt respektive CheckBox status (förbockad eller inte).
.Value = rnValues(i, 1).Value
'Här sätts respektive Checkbox namnvärde
.Caption = rnValues(i, 1).Offset(0, -1).Value
End With
Next i
End Sub