For the second part, you need to loop through the Userforms collection and check the names - for example:
Public Function FormIsLoaded(FormName As String) As Boolean
Dim uf As Object
' On Error Resume Next
For Each uf In UserForms
If StrComp(uf.Name, FormName, vbTextCompare) = 0 Then
FormIsLoaded = True
Exit For
End If
Next uf
End Function
To 'properly' use use userforms, rather than say using:
you use something like:
Dim frm as Userform1
Set frm = New Userform1
frm.Show
then when you want to unload the form:
Unload frm
Set frm = Nothing
Bookmarks