ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Testing to find if UserForm is Loaded (https://www.excelbanter.com/excel-programming/434686-testing-find-if-userform-loaded.html)

DanB

Testing to find if UserForm is Loaded
 
I have multiple userforms open and hidden.

How can I test to see if a userform is loaded before attempting to either
Unload or change attributes to any controls contained therein?

thanks,

DanB

ExcelBanter AI

Answer: Testing to find if UserForm is Loaded
 
Hi DanB,

You can use the
Formula:

VBA 

function "UserForm_IsLoaded" to check if a specific userform is loaded or not. Here's an example code:
  1. If
    Formula:

    UserForm_IsLoaded 

    ("UserForm1") Then
    1. 'Do something with UserForm1 controls
    Else
    1. 'UserForm1 is not loaded
    End If

In the above code, replace "UserForm1" with the name of the userform you want to check. If the userform is loaded, the code inside the "If" block will be executed, otherwise the code inside the "Else" block will be executed.

Hope this helps! Let me know if you need further assistance.

JLGWhiz[_2_]

Testing to find if UserForm is Loaded
 
Why not use and If ...Then statement:

If UserForm1.Visible = True Then
'Do something
Else
UserForm1.Show
'Do something
End If


"DanB" wrote in message
...
I have multiple userforms open and hidden.

How can I test to see if a userform is loaded before attempting to either
Unload or change attributes to any controls contained therein?

thanks,

DanB




DanB

Testing to find if UserForm is Loaded
 
Not quite what I'm looking for but it'd probably work.
I'll need to check if the result is different for testing both Hidden and
Unloaded Forms.

To be more specific, if I had a form that was previously Unloaded I want to
make sure that it doesn't exist before I try to Unload it again. I was
hoping that there was something as simple as an IsLoaded property, but no
such luck.

If there's another way of detecting, I'm all ears!

Best,
DB

"JLGWhiz" wrote:

Why not use and If ...Then statement:

If UserForm1.Visible = True Then
'Do something
Else
UserForm1.Show
'Do something
End If


"DanB" wrote in message
...
I have multiple userforms open and hidden.

How can I test to see if a userform is loaded before attempting to either
Unload or change attributes to any controls contained therein?

thanks,

DanB





JLGWhiz[_2_]

Testing to find if UserForm is Loaded
 
If it is hidden you can use the Show method to make it visible. Show also
will invoke Load so in either case, the Show method will make the form
visible. Testing if it is visible will tell you if it is in a state that
you can unload.

If you are thinking of running a loop to test for the status of each
UserForm, it could be problematic in that if the form is loaded modal, it
must be unloaded to proceed to further code execution in the calling
procedure. If it is loaded modeless, I don't know of a criteria to check
for the hidden forms except by name or whethere it is visible/hidden. To
check by name would probably entail making an array of names to loop
against. Anyhow, the visible property seemed the easiest way to me.


"DanB" wrote in message
...
Not quite what I'm looking for but it'd probably work.
I'll need to check if the result is different for testing both Hidden and
Unloaded Forms.

To be more specific, if I had a form that was previously Unloaded I want
to
make sure that it doesn't exist before I try to Unload it again. I was
hoping that there was something as simple as an IsLoaded property, but no
such luck.

If there's another way of detecting, I'm all ears!

Best,
DB

"JLGWhiz" wrote:

Why not use and If ...Then statement:

If UserForm1.Visible = True Then
'Do something
Else
UserForm1.Show
'Do something
End If


"DanB" wrote in message
...
I have multiple userforms open and hidden.

How can I test to see if a userform is loaded before attempting to
either
Unload or change attributes to any controls contained therein?

thanks,

DanB







DanB

Testing to find if UserForm is Loaded
 
Just tested, it .visible comes up False for both states of Hidden or Unloaded.

I guess I'll need to create public flag variables and create code to track
when I load/unload forms.

Thanks for trying,

DB

"JLGWhiz" wrote:

If it is hidden you can use the Show method to make it visible. Show also
will invoke Load so in either case, the Show method will make the form
visible. Testing if it is visible will tell you if it is in a state that
you can unload.

If you are thinking of running a loop to test for the status of each
UserForm, it could be problematic in that if the form is loaded modal, it
must be unloaded to proceed to further code execution in the calling
procedure. If it is loaded modeless, I don't know of a criteria to check
for the hidden forms except by name or whethere it is visible/hidden. To
check by name would probably entail making an array of names to loop
against. Anyhow, the visible property seemed the easiest way to me.


"DanB" wrote in message
...
Not quite what I'm looking for but it'd probably work.
I'll need to check if the result is different for testing both Hidden and
Unloaded Forms.

To be more specific, if I had a form that was previously Unloaded I want
to
make sure that it doesn't exist before I try to Unload it again. I was
hoping that there was something as simple as an IsLoaded property, but no
such luck.

If there's another way of detecting, I'm all ears!

Best,
DB

"JLGWhiz" wrote:

Why not use and If ...Then statement:

If UserForm1.Visible = True Then
'Do something
Else
UserForm1.Show
'Do something
End If


"DanB" wrote in message
...
I have multiple userforms open and hidden.

How can I test to see if a userform is loaded before attempting to
either
Unload or change attributes to any controls contained therein?

thanks,

DanB







Rick Rothstein

Testing to find if UserForm is Loaded
 
I think this function will do what you want, just pass it the name of the
UserForm...

Function IsUserFormLoaded(UserFormName As String) As Boolean
Dim UF As Object
For Each UF In UserForms
If UCase(UF.Name) = UCase(UserFormName) Then
IsUserFormLoaded = True
Exit Function
End If
Next
End Function

--
Rick (MVP - Excel)


"DanB" wrote in message
...
Just tested, it .visible comes up False for both states of Hidden or
Unloaded.

I guess I'll need to create public flag variables and create code to track
when I load/unload forms.

Thanks for trying,

DB

"JLGWhiz" wrote:

If it is hidden you can use the Show method to make it visible. Show
also
will invoke Load so in either case, the Show method will make the form
visible. Testing if it is visible will tell you if it is in a state that
you can unload.

If you are thinking of running a loop to test for the status of each
UserForm, it could be problematic in that if the form is loaded modal, it
must be unloaded to proceed to further code execution in the calling
procedure. If it is loaded modeless, I don't know of a criteria to check
for the hidden forms except by name or whethere it is visible/hidden. To
check by name would probably entail making an array of names to loop
against. Anyhow, the visible property seemed the easiest way to me.


"DanB" wrote in message
...
Not quite what I'm looking for but it'd probably work.
I'll need to check if the result is different for testing both Hidden
and
Unloaded Forms.

To be more specific, if I had a form that was previously Unloaded I
want
to
make sure that it doesn't exist before I try to Unload it again. I was
hoping that there was something as simple as an IsLoaded property, but
no
such luck.

If there's another way of detecting, I'm all ears!

Best,
DB

"JLGWhiz" wrote:

Why not use and If ...Then statement:

If UserForm1.Visible = True Then
'Do something
Else
UserForm1.Show
'Do something
End If


"DanB" wrote in message
...
I have multiple userforms open and hidden.

How can I test to see if a userform is loaded before attempting to
either
Unload or change attributes to any controls contained therein?

thanks,

DanB








DanB

Testing to find if UserForm is Loaded
 
Rick,

This was exactly what I was looking for.

Thank you very much!

Best,

Dan

"Rick Rothstein" wrote:

I think this function will do what you want, just pass it the name of the
UserForm...

Function IsUserFormLoaded(UserFormName As String) As Boolean
Dim UF As Object
For Each UF In UserForms
If UCase(UF.Name) = UCase(UserFormName) Then
IsUserFormLoaded = True
Exit Function
End If
Next
End Function

--
Rick (MVP - Excel)


"DanB" wrote in message
...
Just tested, it .visible comes up False for both states of Hidden or
Unloaded.

I guess I'll need to create public flag variables and create code to track
when I load/unload forms.

Thanks for trying,

DB

"JLGWhiz" wrote:

If it is hidden you can use the Show method to make it visible. Show
also
will invoke Load so in either case, the Show method will make the form
visible. Testing if it is visible will tell you if it is in a state that
you can unload.

If you are thinking of running a loop to test for the status of each
UserForm, it could be problematic in that if the form is loaded modal, it
must be unloaded to proceed to further code execution in the calling
procedure. If it is loaded modeless, I don't know of a criteria to check
for the hidden forms except by name or whethere it is visible/hidden. To
check by name would probably entail making an array of names to loop
against. Anyhow, the visible property seemed the easiest way to me.


"DanB" wrote in message
...
Not quite what I'm looking for but it'd probably work.
I'll need to check if the result is different for testing both Hidden
and
Unloaded Forms.

To be more specific, if I had a form that was previously Unloaded I
want
to
make sure that it doesn't exist before I try to Unload it again. I was
hoping that there was something as simple as an IsLoaded property, but
no
such luck.

If there's another way of detecting, I'm all ears!

Best,
DB

"JLGWhiz" wrote:

Why not use and If ...Then statement:

If UserForm1.Visible = True Then
'Do something
Else
UserForm1.Show
'Do something
End If


"DanB" wrote in message
...
I have multiple userforms open and hidden.

How can I test to see if a userform is loaded before attempting to
either
Unload or change attributes to any controls contained therein?

thanks,

DanB










All times are GMT +1. The time now is 01:19 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com