Wie gesagt, üblich ist alles was eine UserForm betrifft in das Initialize-Ereginis der UserForm zu packen:
Private Sub UserForm_Initialize()
Me.Caption = "Start: " & Start & " -> Ende: " & Time
End Sub
Jetzt hast du da aber bei dir eine Variable start mit im Spiel, bei der ich nicht weiß wo sie sich befindet. Wenn es eine globale Variable sein sollte (was ich lieber nicht hoffe - weil "böse" ;) ) dann wäre der Quellcode oben schon lauffähig.
Wenn die Variable innerhalb der Funktion in der auch das UserForm2.Show steht deklariert wurde, dann wäre der es:
UserForm2.Caption = "Start: " & start & " -> Ende: " & Time
UserForm2.Show
Wichtig ist zu wissen, dass dieses UserForm2 grundsätzlich erst mal ein unitialisiertes Objekt darstellt. Sobald man auf deren Methoden oder Eigenschaften das erstemal versucht zuzugreifen, wird das Objekt automatisch initialisiert. Ich persönlich mag das nicht, weil es Rückstände geben kann, wenn man die UserForm "vergisst" zu entladen (mit Unload).
Darum mach ich das immer so:
Sub MeinProzedur()
Dim usfInputMask As UserForm2
Set usfInputMask = New UserForm2
usfInputMask.Show
Set usfInputMask = Nothing
End Sub
An der Stelle siehst du vermutlich auch schon, dass du auf diesem Weg mehrere "Kopien" ein und derselben UserFormen anzeigen kannst. Aber ein anders Thema. ;)
|