Several Office users report getting the “Microsoft is waiting for another application to complete an OLE action” error when trying to run a VBA script or when trying to run Excel from a BI launch pad. The issue is reported to occur on all the recent Windows versions including Windows 7, Windows 8.1 and Windows 10)
What is an OLE action?
An Object Linking & Embedding (OLE) action is essentially a mechanism designed to help various Office applications (Word, Excel, Powerpoint, Sharepoint) to communicate with other applications in order to complete an operation successfully.
What is causing the ‘Microsoft Excel is waiting for another application to complete an OLE action’ error?
We investigated this particular issue by looking at various user reports and looking at the official Microsoft documentation. We even managed to replicate the issue on one of our testing machines.
If Excel issues a communication request to another application (let’s say Word), it does it using the OLE object and then waits for the response from the application. If the response does not arrive in the default time threshold, Excel will trigger the following warning to the end user: ‘Microsoft Excel is waiting for another application to complete an OLE action’
Although the error message is always the same, there is actually a couple of fairly common scenario that will trigger this particular error in Microsoft Excel:
- DDE Protocol is disabled from Excel – This issue might be occurring because the Dynamic Data Exchange (DDE) protocol is disabled from Excel’s settings.
- Corrupted Office installation – Some affected users have reported that the issue was resolved after they reinstalled or repaired the entire Office installation.
- Adobe Acrobat PDFMaker add-in is conflicting with Excel – There have been multiple reports of users that have been able to resolve the issue by disabling or uninstalling the PDFMaker plugin.
- IE (Internet Explorer) process is interfering with the DDE – This is typically reported to occur when the user tries to save a file in Microsoft Excel. In this case, the solution is to close the process manually.
If you’re currently struggling to resolve this particular error message, this article will provide you with a selection of troubleshooting steps. Below you have a selection of methods that other users in a similar situation have successfully used to get the issue resolved.
For the best results, follow the methods below in order until you encounter a fix that is effective in getting the issue resolved. Let’s begin
Method 1: Uninstalling Adobe Acrobat PDFMaker (if applicable)
Some users have managed to resolve the error message by uninstalling the Adobe Acrobat PDF Maker add-in. As it turns out, this plugin has the potential to conflict with certain versions of Microsoft Excel.
Here’s a list with Office versions that are compatible with PDF Maker:
- Office 2010 (Office 14) 32 bit and 64 bit
- Office 2013 (Office 15) 32 bit and 64 bit
- Office 2016 (Office 16) 32 bit and 64 bit
Note: You can consult Adobe’s full compatibility guide (here).
If this scenario is applicable and you don’t rely on PDF Maker that heavily, you can most likely resolve the issue by either disabling or uninstalling the Adobe Acrobat PDFMaker add-in.
Here’s a quick guide on how to do this:
Update: You can also use the this Fix-it (here) to automatically disable the PDFMaker add-in automatically. It’s compatible with every recent Windows version including Windows 10, Windows 8.1, Windows 7 and Windows Vista.
- Open Microsoft Excel and click on File using the ribbon bar.
- From the File menu, click on Options (at the bottom of the menu list).
- In the Excel Options menu, click on Add-ins using the left-hand side menu. Next, move over to the right-hand pane, expand the drop-down menu associated with Manage and choose COM Add-ins. Then, click the Go… button to launch the Com Add-ins menu.
- In the COM Add-ins box, either uncheck the box associated with Acrobat PDFMaker Office COM Addin or select it and click Remove to delete it completely.
- Restart your computer and recreate the steps that were previously producing the error once the next startup is complete.
If you’re still encountering the ‘Microsoft Excel is waiting for another application to complete an OLE action’ error, move down to the next method below.
Method 2: Allowing applications that use DDE in Excel’s settings
As a lot of users have reported, the issue might occur if Microsoft Excel is set up to ignore any applications that try to communicate with Excel using the Dynamic Data Exchange (DDE) protocol.
For example, say you double-click on an Excel workbook in Windows Explorer – as soon as the command registers, a dynamic data exchange (DDE) is sent to Excel. That exchange will instruct Excel to open the workbook that you’ve just double-clicked.
If Excel is set up to ignore applications that use the Dynamic Data Exchange protocol, the exchange will not happen and you will see the ‘Microsoft Excel is waiting for another application to complete an OLE action’ error message instead.
Luckily, you can easily rectify this issue by accessing the Options menu of Excel and enabling the DDE protocol. Here’s a quick guide on how to do this:
- Open Microsoft Excel and click on File. It doesn’t matter if you open a new workbook or a new document.
- In the File menu, click on Options from the left-pane.
- In the Excel Options menu, click on the Advanced tab from the left-hand menu. Then, move over to the right pane and scroll down until you reach the General section. Once you get there, make sure that the box associated with Ignore other applications that use Dynamic Data Exchange (DDE) is unchecked.
- Click Ok to save the changes, then restart Microsoft Excel. Then, repeat the operation that was previously causing the “Microsoft is waiting for another application to complete an OLE action” error and see if the issue is still occurring.
If you’re still encountering the same error message, move over to the next method below.
Method 3: Killing the Internet Explorer (IE) process
Several users seeing the “Microsoft is waiting for another application to complete an OLE action” error when trying to save the file, you might be seeing the error because of an IE process is interfering with the Dynamic Data Exchange (DDE) exchange.
Users in a similar situation have reported that the issue was resolved after they killed the IE process manually. Here’s a quick guide on how to do this:
- Press Ctrl + Shift + Esc to open Task Manager.
- Inside Task Manager, go to the Processes tab and see if you have any process belonging to Internet Explorer that is currently active.
- If you see one open, simply right-click on it and choose End task to close it.
- Return to Excel and see if the “Microsoft is waiting for another application to complete an OLE action” error is still occurring when you’re trying to save the file.
If you’re still encountering the same error, move down to the next method below.
Method 4: Suppressing the Excel Application Messaging
If you’re seeing the error message when trying to run a VBA script, one workaround would be to suppress the application messaging by using a tiny piece of code.
But keep in mind that this will not treat the issue itself – It’s only a workaround that prevents the error message from appearing. However, it will be helpful if your only goal is to prevent the error message from appearing.
Here’s a quick guide on inserting a VBA code to excel Workbook that will suppress the excel application messaging:
- Open your workbook in Excel and press Alt + F11 to open the Visual Basic Editor (VBE).
- In the Project bar (left-hand side), right-click on ThisWorkbook and choose Insert > Module.
- In the newly created module, paste the following code (in the right section of the screen):
Private Declare Function CoRegisterMessageFilter Lib "ole32" (ByVal IFilterIn As Long, ByRef PreviousFilter) As Long Public Sub KillMessageFilter() Dim IMsgFilter As Long CoRegisterMessageFilter 0&, IMsgFilter End Sub Public Sub RestoreMessageFilter() Dim IMsgFilter As Long CoRegisterMessageFilter IMsgFilter, IMsgFilter End Sub
Update: Other users have reported that they managed to prevent the error prompt from appearing by using the following VBA code:
Sub CreateXYZ() Dim wdApp As Object Dim wd As Object On Error Resume Next Set wdApp = GetObject(, "Word.Application") If Err.Number <> 0 Then Set wdApp = CreateObject("Word.Application") End If On Error GoTo 0 Set wd = wdApp.Documents.Open(ThisWorkbook.Path & Application.PathSeparator & "XYZ template.docm") wdApp.Visible = True Range("A1:B10").CopyPicture xlScreen wd.Range.Paste End Sub
- Press Ctrl + S and click No when you see the “The following features cannot be saved in macro-free workbook” warning.
- Then, choose a suitable location for the modified workbook set a proper name and make sure that the Save as type is set to Excel Macro-Enabled Workbook. Once everything is in order, click on Save to create the Excel Macro-Enabled Workbook.
- Press Alt + Q to close the editor and go back to your workbook. Once you’re back in your editor press Alt + F8, select the Macro that you’ve just created and click Run.
Once this procedure is complete, you should no longer see the ‘Microsoft Excel is waiting for another application to complete an OLE action’ error with this WorkBook (even though it might still occur in the background).
Method 5: Disable Compatibility Mode (if applicable)
Some users have managed to resolve the issue after discovering that the Excel executable was running in Compatibility mode. This can happen due to manual user intervention or a 3rd party application.
If you suspect that Excel is running in compatibility mode, disable it and see if the ‘Microsoft Excel is waiting for another application to complete an OLE action’ error stops appearing. Typically, the error is reported to occur if the Excel executable is configured to run in Compatibility mode with Windows Vista and older.
Here’s a quick guide on disabling Compatibility Mode:
- Right-click the Excel executable (or the shortcut) and choose Properties.
- In the Properties window, go to the Compatibility tab and uncheck the box associated with Run this program in compatibility mode.