Hiding a "Userform" instead of closing it???
You can hide your form and maintain it in memory until Show'n again. However
if the only reason is to display next time at the previous position far
better to trap the coordinates before unloading, and reapply them when the
form reloads. Try something like this
' normal module
Public gFormLeft As Single
Public gFormTop As Single
Sub test()
UserForm1.Show vbModeless
End Sub
' userform module
Private Sub UserForm_Initialize()
If gFormLeft Or gFormTop Then
With Me
.StartUpPosition = 0
.Left = gFormLeft
.Top = gFormTop
End With
End If
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, _
CloseMode As Integer)
With Me
gFormLeft = .Left
gFormTop = .Top
End With
End Sub
Instead of saving the position to variables you could save them to hidden
cells, or even pop them in the registry (see SaveSetting and GetSetting).
Regards,
Peter T
"Robert Crandal" wrote in message
...
I have a push button on my spreadsheet which loads my Userform
in the following manner:
Sub Button1_Click()
UserForm1.Show (vbModeless) ' Display my Userform End Sub
When a user presses the "X" button on the Userform object
I believe that Excel will terminate the Userform instead of
simply "hiding" it by making it invisible. How can I program
my Userform to turn invisible instead of terminating itself??
I would rather have the Userform turn invisible so it can
maintain its current position on the screen when it is
re-activated again..... I noticed that the Userform position
gets reset to default after the form is terminated, and I want
to avoid this.
Thank you!
|