View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Bob Phillips[_3_] Bob Phillips[_3_] is offline
external usenet poster
 
Posts: 2,420
Default Activate .. Select .. Initialize

When you show a form, it creates an implicit instance of that class, so in
good programming practice you should release that object at the end.

As an example, consider a form with this code

Private Sub cmdQuit_Click()
Me.Hide
End Sub

Private Sub UserForm_Activate()
MsgBox "Activate"
End Sub

Private Sub UserForm_Initialize()
MsgBox "Initialize"
End Sub

and then you use this code to show it

UserForm1.Show
UserForm1.Show
Set UserForm1 = Nothing
UserForm1.Show


The first Show will MsgBox Initialize and the Activate, the second only the
Activate as it is already in memory, but then you clear out the form
instance, so the third show MsgBox the Initialize and Activate.

I use a variation along these lines

Dim myForm As UserForm1

Set myForm = New Userform1
With myForm

'do initialisation stuff
.Show

'do tidy-up stuff
End With

Set myForm = Nothing

--
__________________________________
HTH

Bob

"Tendresse" wrote in message
...
Thanks for the clarification, guys. Much appreciated.

Another question if you don't mind. With:

Userform1.Show
Set Userform1 = Nothing

What does 'Set Userform1 = Nothing' do exactly? I saw it in one of the
threads and i'm using it everytime I 'show' a form but i don't know
exactly
what would happen if I don't put it there. Are you able to shed some more
light on this one, please?
Thanks once more .. you guys are gems.
Tendresse