Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Is it possible to create a macro in one instance of excel to call/elecute
another macro in another instance of excel?? Say the first instance macro is first_instance.xls!macro1 and the second instance macro is second_instance.xls!macro2. Both files are on the desktop of one machine. The two macros are outside each other's scope, but is it possible to call one from the other anyway??? What would the calling code line say? |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Assuming the other workbook is open, you can use
Application.Run, e.g.: Application.Run "FileName.xls!MacroName" If it's not open, you can make a reference to it (menu Tools | References) and call the macro that way. Either way, it can be risky. It depends on what the macro does. Hth, Merjet |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Paul,
I don't think this is possible, at least in a reliable way. To do so, you'd have to use GetObject to get a reference to the other instance of Excel, but there is no way to tell GetObject which instance of Excel to reference. As likely as not, you'll get a reference to the instance that contains the GetObject statement, not the other instance. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com (email address is on the web site) "Paul" wrote in message ... Is it possible to create a macro in one instance of excel to call/elecute another macro in another instance of excel?? Say the first instance macro is first_instance.xls!macro1 and the second instance macro is second_instance.xls!macro2. Both files are on the desktop of one machine. The two macros are outside each other's scope, but is it possible to call one from the other anyway??? What would the calling code line say? |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Providing you know the path of the file, as well of course as it's name, try
the following - Sub test() Dim sFolder As String Dim sFile As String Dim sMacro As String Dim wb As Workbook Dim xlApp As Excel.Application sFile = "myBook.xls" sFolder = "C:\My Documents\Excel\" On Error Resume Next Set xlApp = GetObject(sFolder & sFile).Parent On Error GoTo errH If xlApp Is Nothing Then MsgBox sFile & " not found" Else sMacro = "'" & sFile & "'!" & "myMacro" xlApp.Run sMacro '' if you want to do stuff to the file ' Set wb = xlApp.Workbooks(sFile) ' wb.Worksheets(1).Range("A1") = Now End If Exit Sub errH: MsgBox Err.Description End Sub Normally this should find the file if loaded in any instance, even own instance. Bear in mind any dialogs or msgbox's that myMacro shows may be hidden behind other windows, though some API calls could bring the instance to the front. If you don't know the the file's path it's considerably more difficult to reference other unknown instances. Regards, Peter T "Paul" wrote in message ... Is it possible to create a macro in one instance of excel to call/elecute another macro in another instance of excel?? Say the first instance macro is first_instance.xls!macro1 and the second instance macro is second_instance.xls!macro2. Both files are on the desktop of one machine. The two macros are outside each other's scope, but is it possible to call one from the other anyway??? What would the calling code line say? |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
That's not a bad approach, but I found it more reliable to use
Dim XLB As Excel.Workbook Set XLB = GetObject("C:\Book1.xls") XLB.Parent.Run "Book1.xls!AAA" -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com (email address is on the web site) "Peter T" <peter_t@discussions wrote in message ... Providing you know the path of the file, as well of course as it's name, try the following - Sub test() Dim sFolder As String Dim sFile As String Dim sMacro As String Dim wb As Workbook Dim xlApp As Excel.Application sFile = "myBook.xls" sFolder = "C:\My Documents\Excel\" On Error Resume Next Set xlApp = GetObject(sFolder & sFile).Parent On Error GoTo errH If xlApp Is Nothing Then MsgBox sFile & " not found" Else sMacro = "'" & sFile & "'!" & "myMacro" xlApp.Run sMacro '' if you want to do stuff to the file ' Set wb = xlApp.Workbooks(sFile) ' wb.Worksheets(1).Range("A1") = Now End If Exit Sub errH: MsgBox Err.Description End Sub Normally this should find the file if loaded in any instance, even own instance. Bear in mind any dialogs or msgbox's that myMacro shows may be hidden behind other windows, though some API calls could bring the instance to the front. If you don't know the the file's path it's considerably more difficult to reference other unknown instances. Regards, Peter T "Paul" wrote in message ... Is it possible to create a macro in one instance of excel to call/elecute another macro in another instance of excel?? Say the first instance macro is first_instance.xls!macro1 and the second instance macro is second_instance.xls!macro2. Both files are on the desktop of one machine. The two macros are outside each other's scope, but is it possible to call one from the other anyway??? What would the calling code line say? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Run Macro in another workbook already OPENED in another instance of Excel | Excel Programming | |||
How do I get one instance of Excel to communicate with another instance? | Excel Programming | |||
calling excel macro | Excel Programming | |||
Calling Excel Macro From Vc++ via DDE | Excel Programming | |||
calling a dll from excel macro | Excel Programming |