Hallo Experten,
ich steh mal wieder auf der Leitung. Folgendes Problem :
Ich möchte beim Start eine Userform anzeigen lassen, das funktioniert.
In der UserForm ist ein Kontrollkästchen ( Diesen Dialog nicht mehr anzeigen ).
Müsste also beim nächsten Start die Userform nicht mehr erscheinen.
Im Workbook steht folgendes
If userform2.checkbox1.Value = False Then
Userform2.Show
End If
Beim Start zeigt er auch die UserForm an. Dann klicke ich die Checkbox an.
Private Sub Checkbox_Click()
Ceckbox.Value = True
End Sub
Dann klicke ich den OK Button an
Private Sub CommandButton_Click()
Unload Me
End Sub
Jetzt habe ich das Problem, dass der Value Wert der Checkbox nicht in True übergeht.
Was mache ich falsch ? Wer weis Rat ?
dein Problem hat weniger mit der Checkbox zu tun, als mit der Tatsache, dass du den WERT der Checkbox permanent speichern musst.
Zu Beginn (AutoExec-Makro?) musst du also diesen „externen Speicher“ abfragen. Als solcher kommt eine Datei, Registry-Key oder eine Dokumenteneigenschaft in Frage. Ich verwende letzteres!
und so geht’s:
In deinem Makro, dass die UserForm aufruft, schreibst du:
' (...)
Dim w As Boolean
On Error GoTo keinProperty
w = ActiveWorkbook.CustomDocumentProperties("AnzeigeWelcome")
If w Then
'UserForm anzeigen
UserForm2.Show
Else
'UserForm nicht anzeigen
End If
Exit Sub
keinProperty:
ActiveWorkbook.CustomDocumentProperties.Add Name:="AnzeigeWelcome", LinkToContent:=False, Type:=msoPropertyTypeBoolean, Value:=True
' Form anzeigen
UserForm2.Show
End Sub
Je nachdem, was in der Dokumenteigenschaft steht, wird das Formular angezeigt oder nicht.
Wenn es eine Dokumenteneigenschaft nicht gibt, wird sie erzeugt und das Formular angezeigt (Programmzeilen unterhalb „keinProperty“).
Die Dokumenteneigenschaften findest du unter:
Datei->Eigenschaften im Register „Anpassen“
Das Klick-Ereignis in der UserForm2 für die CheckBox1 muss so lauten:
Private Sub CheckBox1\_Click()
If CheckBox1.Value Then
' nicht mehr anzeigen
ActiveWorkbook.CustomDocumentProperties("AnzeigeWelcome") = False
Else
' anzeigen
ActiveWorkbook.CustomDocumentProperties("AnzeigeWelcome") = True
End If
End Sub