Excel - Calling Form Routine from Another Workbook

Asked By Denis on 30-Oct-08 11:33 PM
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


Peter T replied on 30-Oct-08 12:45 PM
Application.Run "SomeBook.xls!SomeForm.SomeRoutine"

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

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

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

Peter T