Calling Form Routine from Another Workbook

  • Thread starter Thread starter Denis
  • Start date Start date
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
 
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

Back
Top