opening form in new instance of excel

R

riva91

I've been exploring alot of threads about this subject but haven't
found the right solution yet.

My problem is that i have an excel sheet with a vba form uploaded on
our intranet. When a user downloads this file and immediately opens it,
it wil open the form through the workbook_open event.
No problem so far.
But when this user has already an instance of excel running the
userform opens on the background in this instance and is not always in
focus.

What i want is to open this form in a new instance of excel if excel
is already running. I found a function that tests if excel is running.
But how can i control this workbook being opened in a new instance?
When i use the workbook_open event the choice has already been made for
me.

Anyone a good idea?

This is in dummy code what i want

If fIsAppRunning("Excel") Then
Set objXL = CreateObject("Excel.Application")
frmEAED.Show ' to open this form in the objXL instance



Regards,

Bert Nijkoops
 
P

Peter T

Hi Bert,

You can of course start a new Excel instance, possibly within that opening a
copy of your project with form to auto run. But that would not only be
another instance of Excel but another 'instance' (for want of a better word)
of your project with userform.

I can't replicate your intranet scenario but there are ways to ensure 'your'
excel application is both visible and the front window, perhaps with API's

Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClasssName As String, _
ByVal lpWindowName As String) As Long

Private Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long

Dim appHwin As Long

Sub AppToFront()
'Application.Visible = True ' ?

appHwin = FindWindowA(vbNullString, Application.Caption)

SetForegroundWindow appHwin

End Sub

Not sure but perhaps even simpler with AppActivate, eg

AppActivate "Microsoft Excel" 'if sure only one instance
or
AppActivate Me.Caption ' in a userform

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