ich möchte gerne die Werte zahlreicher Steuerelemte einer UserForm (also von TextBoxen, ComboBoxen, CheckBoxen und OptionButtons) beim Schließen der UserForm in einem Dictionary Object ablegen, damit die UserForm-Steuerelemente nach dem erneuten Aufruf der UserForm wieder mit ihren "alten Werten" gefüllt werden können.
Dazu habe ich in Modul1 eine öffentliche Object-Variable für das Dictionary Object festgelegt:
Public MeldedatenDic As Object
Beim Schließen der UserForm werden alle Werte in das Dictionary Object übertragen:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Set MeldedatenDic = CreateObject("Scripting.Dictionary")
Dim cnt As Control
For Each cnt In Me.Frame1.Controls
Select Case TypeName(cnt)
Case "OptionButton", "CheckBox", "TextBox", "ComboBox"
'MsgBox cnt.Name & ": " & cnt.Value
MeldedatenDic(cnt.Name) = cnt.Value
End Select
Next
End Sub
Beim Aufruf der UserForm werden die Werte vom Dictionary Object zurück in die Steuerelemente der UserForm übertragen:
Private Sub UserForm_Initialize()
Dim myKey As Variant
For Each myKey In MeldedatenDic.Keys
Controls(myKey).Value = MeldedatenDic(myKey)
Next
End Sub
Das Problem: Beim ersten Aufruf der UserForm (also wenn das Dictionary Object noch nicht gefüllt ist), erscheint die Fehlermeldung "Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt". Wie kann ich abfragen, ob mein Object (also das in Modul1 definierte "MeldedatenDic") bereits zugewiesen wurde?
Viele Grüße
Martin