Calling Form Routine from Another Workbook

D

Denis

You can call a routine in another workbook by doing:
Application.Run "SomeBook.xls!SomeRoutine"

Since you can call a routine in a form by:
Call SomForm.FormRoutine

I was hoping that you could call a form routine from another workbook
by doing:
Application.Run "SomeBook.xls!SomeForm.FormRoutine"
but this doesn't work.

Is there a way to do this?

On a related note, is there a way to unload a form from another
workbook. My understanding is that calling a routine in a form will
automatically load it (if it isn't already loaded) but there are times
when you would want to unload a form to guarantee you are starting
fresh.

Denis
 
P

Peter T

1.
Application.Run "SomeBook.xls!SomeForm.SomeRoutine"

Put code in SomeRoutine to run (ie load and show) the form (in same project
as SomeRoutine)

2.
Yes you are right, as soon as you reference a userform it will load into
memory and stay there until explicitly unloaded (or the wb is closed)

To unload one or all forms in a project -

Dim i as long

For i = 1 to Userforms.count To 1 Step -1
' If Userforms(i - 1).name = "myFormName" Then '' only unload this form
Unload Userforms(i - 1)
' End If
Next

uncomment "If..." & "End If" to only unload a particular form, if loaded


Regards,
Peter T
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top