cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
ABillsy
Frequent Visitor

PAD automation actions with Excel not working

Hi 

 

I’m new to power automate desktop and this community. Having trouble trying to run desktop automation actions with excel… for example… I tried using desktop recorder, then after hitting record button, in my open excel file, clicking formulas tab then Name manager button. When I try to run the flow, it just sits at the click window tab (formula) action and does nothing… it’s like it hasn’t recognised the Excel menu “formulas” tab hi element? I’ve also tried to use the sendkeys action but didn’t appear to work either… what am I missing?

 

cheers,

ABillsy

3 ACCEPTED SOLUTIONS

Accepted Solutions

Hi @Anonymous ,

 

Thank you for your feedback.  Adding the focus window action seem to resolve my issue.  Without it, the send keys action was not working.

View solution in original post

If New and Close are the only 2 UI buttons that you are trying to use, try a Send Keys {Alt}()n and Send Keys {Alt}()c. 

Note that in Excel, to use the ribbon, the Alt key is pressed once, not held down, so hot keys appear outside the parenthesis. Another version for File -> New is {Control}(n) and another version for Close is {Alt}({F4}).

 

This next piece should have nothing to do with your UI selectors, but if you want to manipulate the Excel with PAD (Save, Close, Read, Write, etc), you must “Attach to running Excel instance” first.

 

Best of Luck!

View solution in original post

Anonymous
Not applicable

Hello again @ABillsy 

 

Why don't you use window instance %ExcelInstance% to be focused? You can easily identify the window of currently opened Excel instance.

 

shindomo_0-1632944552681.png


I have created a sample "For each" loop as following, and it's working for me.

 

Folder.GetFiles Folder: $'''C:\\Users\\User01\\Documents''' FileFilter: $'''*.csv''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.NoSort SortDescending1: False SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> Files
LOOP FOREACH CurrentItem IN Files
    Excel.LaunchAndOpen Path: CurrentItem Visible: True ReadOnly: False LoadAddInsAndMacros: False Instance=> ExcelInstance
    Excel.Advanced.ActivateCell Instance: ExcelInstance Column: $'''B''' Row: 2
    UIAutomation.Windows.FocusByInstanceOrHandle WindowInstance: ExcelInstance
    MouseAndKeyboard.SendKeys TextToSend: $'''{Control}({Shift}({Down}))''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
    MouseAndKeyboard.SendKeys TextToSend: $'''{Control}({F3})''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
    MouseAndKeyboard.SendKeys TextToSend: $'''{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
    MouseAndKeyboard.SendKeys TextToSend: $'''{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
    MouseAndKeyboard.SendKeys TextToSend: $'''{Alt}({F4})''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
    Excel.CloseAndSaveAs Instance: ExcelInstance DocumentFormat: Excel.ExcelFormat.OpenXmlWorkbook DocumentPath: CurrentItem.NameWithoutExtension
END

 

shindomo_1-1632944828152.png

 

Please try it.

Thank you.

View solution in original post

15 REPLIES 15
Highboy
Super User
Super User

Did you remember to click on record in the Desktop recorder? (Might be a stupid question)

Highboy_0-1632484135501.png

When you have clicked record you should see something like this (When you point on Formula)

Highboy_1-1632484193407.png

 

Yes, definitely clicked record and saw the red frame highlights as I clicked on menu item and clicked menu button.

Anonymous
Not applicable

Hello @ABillsy 

 

You can also use keyboard shortcut to navigate through the ribbon menu.

To open Name Manager, enter "Alt - M - N".

 

shindomo_0-1632484709320.png

 

Excel.Launch Visible: True LoadAddInsAndMacros: False Instance=> ExcelInstance
UIAutomation.Windows.FocusByInstanceOrHandle WindowInstance: ExcelInstance
MouseAndKeyboard.SendKeys TextToSend: $'''{Alt}(){M}{N}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False

 

VJR
Super User
Super User

Hi @ABillsy 

 

So as to see if there could be an easier way could you please clarify what exactly are you trying to achieve by using the Formula menu?

 






-------------------------------------------
Help fellow beings find relevant posts.
Upvote to a supporting response.
Mark as solution to an answer.

 

Hi @Anonymous ,

 

Thank you for your feedback.  Adding the focus window action seem to resolve my issue.  Without it, the send keys action was not working.

ABillsy
Frequent Visitor

Hi @VJR ,

 

Thank you for your reply.  I was trying to use the send keys action to open the name manager in excel.  @Anonymous 's reply pointed me to the solution which was to use the Focus window action first.

 

I now have a new problem though... I am opening all excel csv files in a particular folder using the for each loop, and then for each file I want to use the send keys action.  When i use the "Focus window" action I now need the UI selector to dynamically update the name property to the excel filename... I have clicked edit selector and then New, then turned toggle on custom off then changed the name property from:

ABillsy_0-1632793362128.png

To:

 

ABillsy_1-1632793444363.png

 

Finally turning off Custom toggle...

 

ABillsy_2-1632793489717.png

 

However, when I add and use this custom dynamic UI selector with the Focus Window action, it doesn't recognise the window.  I don't get an error... it just sits on the Focus window action runnning infintely.

 

Any ideas?

Just uncheck NAME from the window (header) UI selector.  Then, it will work for the Excel in focus rather than being for a specific Excel window.

Thanks for the feedback @MichaelAnnis ..  I unchecked NAME from the window (header) UI selector as you suggested, but still looks like it doesn't execute the action (just sits idle ono it and does not move to next action "Send keys" which I put a stopper on)... refer my pics below in case I have missed something? (Last pic shows it idle on Focus window action, with excel file open, where i had unchecked NAME i the UI selector updated in previous pic)

 

Feedback1.PNGFeedback2.PNGFeedback3.PNGFeedback4.PNG

 

VJR
Super User
Super User

Hi @ABillsy 

 

Thanks for responding back with the details of the problem.

The original reason why I asked what are you doing with the Name manager is that spying the fields via UI automation directly on the Excel application is going to cause a hell lots of problems. One thing will work, then the next wont and again the same. And might work once but not the next time and so on.

 

The best option is to write a macro in an Excel and call that from the PAD's "Run Excel macro" action.

Excel's Object Model Library will be easily available to you while writing the macro and therefore would make things way easy.

 

This is an easier approach until Microsoft develops a way of writing Code stages within PAD itself just like the other RPA tools. But if you are unable to use an Excel for writing a macro due to "project reasons" then you will have to stick with trying the screen scraping and spying approach that you are already doing.

 

Thanks.

VJ

ABillsy
Frequent Visitor

Thanks @VJR ,

 

Unfortunately in this instance, I don't have the luxury of leveraging the excel macro ☹️..  However, definitely agree that your proposed approach would be far better.  I've noticed the built in Excel RPA actions appear to work pretty well too, but may be a while before we see some added excel actions to accommodate wider automation functionality to the office365 suite.

 

For now, the focus action and send keys appear to be working quite well, except I can't get the UI selector to dynamically focus the new window (ignoring the NAME header) as @MichaelAnnis  had suggested... any ideas?

 

kind regards,

 

ABills

If New and Close are the only 2 UI buttons that you are trying to use, try a Send Keys {Alt}()n and Send Keys {Alt}()c. 

Note that in Excel, to use the ribbon, the Alt key is pressed once, not held down, so hot keys appear outside the parenthesis. Another version for File -> New is {Control}(n) and another version for Close is {Alt}({F4}).

 

This next piece should have nothing to do with your UI selectors, but if you want to manipulate the Excel with PAD (Save, Close, Read, Write, etc), you must “Attach to running Excel instance” first.

 

Best of Luck!

Anonymous
Not applicable

Hello @ABillsy 

 

You should set the break point (red circle) at action No. 12 "Wait 2 seconds" instead of at action No. 11 "Send keys", if you want No. 11 to be executed.

 

Or you can hit F10 key to run next action (step by step).

 

Thank you.

Anonymous
Not applicable

Hello again @ABillsy 

 

Why don't you use window instance %ExcelInstance% to be focused? You can easily identify the window of currently opened Excel instance.

 

shindomo_0-1632944552681.png


I have created a sample "For each" loop as following, and it's working for me.

 

Folder.GetFiles Folder: $'''C:\\Users\\User01\\Documents''' FileFilter: $'''*.csv''' IncludeSubfolders: False FailOnAccessDenied: True SortBy1: Folder.SortBy.NoSort SortDescending1: False SortBy2: Folder.SortBy.NoSort SortDescending2: False SortBy3: Folder.SortBy.NoSort SortDescending3: False Files=> Files
LOOP FOREACH CurrentItem IN Files
    Excel.LaunchAndOpen Path: CurrentItem Visible: True ReadOnly: False LoadAddInsAndMacros: False Instance=> ExcelInstance
    Excel.Advanced.ActivateCell Instance: ExcelInstance Column: $'''B''' Row: 2
    UIAutomation.Windows.FocusByInstanceOrHandle WindowInstance: ExcelInstance
    MouseAndKeyboard.SendKeys TextToSend: $'''{Control}({Shift}({Down}))''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
    MouseAndKeyboard.SendKeys TextToSend: $'''{Control}({F3})''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
    MouseAndKeyboard.SendKeys TextToSend: $'''{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
    MouseAndKeyboard.SendKeys TextToSend: $'''{Return}''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
    MouseAndKeyboard.SendKeys TextToSend: $'''{Alt}({F4})''' DelayBetweenKeystrokes: 10 SendTextAsHardwareKeys: False
    Excel.CloseAndSaveAs Instance: ExcelInstance DocumentFormat: Excel.ExcelFormat.OpenXmlWorkbook DocumentPath: CurrentItem.NameWithoutExtension
END

 

shindomo_1-1632944828152.png

 

Please try it.

Thank you.

Thankyou @Anonymous ,

 

Your proposed solution to use variable  %ExcelInstance% instead of UI selector worked perfectly! 😊

I feel silly for not thinking to try that instead.  Once again, thank you.

 

kind regards, ABillsy

 

Hi @MichaelAnnis ,

 

Thank you for the feedback.  I have implemented your suggestion to get rid of the new & close buttons thereby removing the need for any UI selectors.  Together with @Anonymous suggestion to use the variable %ExcelInstance% instead for the Focus window action has now resulted in the flow working perfectly. 

 

Once again, thank you both for your help 👍

Helpful resources

Announcements
Power Automate News & Announcements

Power Automate News & Announcements

Keep up to date with current events and community announcements in the Power Automate community.

Community Calls Conversations

Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Automate Community Blog

Power Automate Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Top Kudoed Authors
Users online (1,538)