ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   find count of multiple excel instances (https://www.excelbanter.com/excel-programming/391102-find-count-multiple-excel-instances.html)

Nayan

find count of multiple excel instances
 
Hello ,

If anyone knows how to get count of all the instances of excel that are open
at a time on the machine?

using getobject will reference to the instance of the excel application that
was opened first but it will not say how many instances are already open at
that point of time.

I need this value in a start up of an xla file which runs on loading of
excel (2003)
If more then one instance are open then I want to exit from furthur loading
of xla .

Thanks,

Nayan

Jennifer[_2_]

find count of multiple excel instances
 
On Jun 11, 1:04 pm, Nayan wrote:
Hello ,

If anyone knows how to get count of all the instances of excel that are open
at a time on the machine?

using getobject will reference to the instance of the excel application that
was opened first but it will not say how many instances are already open at
that point of time.

I need this value in a start up of an xla file which runs on loading of
excel (2003)
If more then one instance are open then I want to exit from furthur loading
of xla .

Thanks,

Nayan


Here's a VB Script you can use:

Dim XLCount
Dim oWMI

Set oWMI = GetObject("winmgmts:")
XLCount = 0

For Each Process in oWMI.InstancesOf("Win32_Process")
IF UCASE(Process.Name) = "EXCEL.EXE" THEN
XLCount = XLCount + 1
End If
Next

MSGBOX "EXCEL INSTANCES OPEN: " & XLCount

Set oWMI = nothing


Peter T

find count of multiple excel instances
 
Another way -

Private Declare Function FindWindowEx Lib "user32" _
Alias "FindWindowExA" _
(ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long

Function XLcount() As Long
Dim hwnd As Long, n As Long
Do
hwnd = FindWindowEx(0&, hwnd, "XLMAIN", vbNullString)
n = n + 1
Loop Until hwnd = 0
XLcount = n - 1
End Function

Sub test()
MsgBox XLcount
End Sub

Regards,
Peter T

"Nayan" wrote in message
...
Hello ,

If anyone knows how to get count of all the instances of excel that are

open
at a time on the machine?

using getobject will reference to the instance of the excel application

that
was opened first but it will not say how many instances are already open

at
that point of time.

I need this value in a start up of an xla file which runs on loading of
excel (2003)
If more then one instance are open then I want to exit from furthur

loading
of xla .

Thanks,

Nayan




Nayan

find count of multiple excel instances
 
Jennifer,

This is working great.

Thanks a lot,

Nayan


"Jennifer" wrote:

On Jun 11, 1:04 pm, Nayan wrote:
Hello ,

If anyone knows how to get count of all the instances of excel that are open
at a time on the machine?

using getobject will reference to the instance of the excel application that
was opened first but it will not say how many instances are already open at
that point of time.

I need this value in a start up of an xla file which runs on loading of
excel (2003)
If more then one instance are open then I want to exit from furthur loading
of xla .

Thanks,

Nayan


Here's a VB Script you can use:

Dim XLCount
Dim oWMI

Set oWMI = GetObject("winmgmts:")
XLCount = 0

For Each Process in oWMI.InstancesOf("Win32_Process")
IF UCASE(Process.Name) = "EXCEL.EXE" THEN
XLCount = XLCount + 1
End If
Next

MSGBOX "EXCEL INSTANCES OPEN: " & XLCount

Set oWMI = nothing



Nayan

find count of multiple excel instances
 
Peter,

Its working perfect.

Its always good to know more then one method.

Thanks ,

Nayan

"Peter T" wrote:

Another way -

Private Declare Function FindWindowEx Lib "user32" _
Alias "FindWindowExA" _
(ByVal hWnd1 As Long, _
ByVal hWnd2 As Long, _
ByVal lpsz1 As String, _
ByVal lpsz2 As String) As Long

Function XLcount() As Long
Dim hwnd As Long, n As Long
Do
hwnd = FindWindowEx(0&, hwnd, "XLMAIN", vbNullString)
n = n + 1
Loop Until hwnd = 0
XLcount = n - 1
End Function

Sub test()
MsgBox XLcount
End Sub

Regards,
Peter T

"Nayan" wrote in message
...
Hello ,

If anyone knows how to get count of all the instances of excel that are

open
at a time on the machine?

using getobject will reference to the instance of the excel application

that
was opened first but it will not say how many instances are already open

at
that point of time.

I need this value in a start up of an xla file which runs on loading of
excel (2003)
If more then one instance are open then I want to exit from furthur

loading
of xla .

Thanks,

Nayan






All times are GMT +1. The time now is 01:43 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com