form object doesn't have a show method ?

  • Thread starter Thread starter Michel S.
  • Start date Start date
M

Michel S.

hello !

I have a userform for which I want to programmatically set/change
properties in a function before displaying it.

Instead of hardcoding the form's name at many places in the function,
I'd like to assign it to a form object and use this object in my
function.

How can I do it ?

I tried :

Dim frm AS MSForms.UserForm
Set frm = frmActualFormName

Using this syntax, I can access and edit form's controls, but when the
program reaches :
frm.Show

I get an error 438 : Object doesn't support this property or method.

Why ?

Thanks.
 
Try using the VBA.UserForms object. For example,

Sub AAA()
ShowAnyForm "frmMyForm2"
End Sub

Sub ShowAnyForm(FormName As String)
Dim N As Long
With VBA.UserForms
N = .Count
.Add FormName
.Item(N).Show
End With
End Sub


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)
 
try

Dim frm AS Object

that worked for me.

Userform is a generic class, when you create a new userform, it is its own
type.

assume the form is show in the project explorer as MyForm

then you could use

Dim frm as Myform

that will also work.
 
Thanks !

I used the second method to benefit from Intellisense working too;
since the two lines :

Dim frm AS MyForm
Set frm = MyForm

are one below the other, it will be easy to change, if ever required.


Tom Ogilvy avait énoncé :
 
Thanks for your reply.

Your method works, but I prefer the suggestion made by Tom Ogilvy where
you only need to change the Dim statement.


Chip Pearson vient de nous annoncer :
 
Back
Top