I am using a script to export data from SAP to Excel. The goal is to make this macro work for anyone that would attempt to run it, however, if they have a different SAP layout then the macro is messed up. Digging through the code it looks like SAP is assigning a number value to each row. So the macro runs the SAP transaction, then changes the layout and dumps all of the displayed columns in the layout over to the right based on which number it's referencing. Now this works fine when I run it because the final column is always the same, but if someone with a different layout were to run it then they would only remove some of the fields.
What I'm wondering is if there is a way in VBA to select all of the rows or completely clear the "Displayed Columns" bucket, rather than the current code which is:
session.findById(PLACEHOLDER).selectedRows = "0-27"
Basically, I need a blank slate to have the macro set up the export properly but I'm struggling to give everyone the same blank slate if they have a different SAP layout.
Any help is appreciated.
Thanks.
Found the answer shortly after posting. Instead of using:
.selectedRows = "0-27"
I used:
.selectAll
This grabbed everything in the field so I could then repopulate with the information I needed.
Related
I am attempting to find a solution with either excel or visual basics.
I have an expanding column of remarks on multiple sheets that I need to search through for a keyword (I’m using the word “change” or “chang” to capture “changing” when needed)
When this keyword is found, I need it to give back the cell address, along with a defined name I’ve set up (one for each sheet).
I was able to make a table on a “summary sheet” to include the “new comment”, address, and defined name, and it works well enough. My only concern now is if I add a new row and therefore add a new comment in the column on one sheet, I will have to go back and add a row to my table, and make sure the address and defined name are also corresponding to that “new comment”. This will get very messy and errors can occur, especially since I could have 20+ sheets.
So far all I have been using is excel formulas. But I have also been playing around with excel macros to try and accomplish this (with no luck).
Any help would be greatly appreciated! And I of course can explain this better if need be.
Edit: I added a picture of the general basis of what I’m trying to accomplish. I can’t add the code I’ve been trying as it’s on my work laptop- so I made a simple mock-up of my sheet to include here. I took pictures of the highlighted cell in sheet 1 to show the formulas, and then a picture of sheet 2.1
I have used Excel for quite some time now but only using traditional formulas. Now I am trying to create a more elaborated document for my business using VBA coding to expand my possibilities.
I have done some research and started practicing but found something that I can’t understand how to do yet.
I have a worksheet with a table on it. Since this is a fresh document it has nothing but the header and a blank row below it. What I always did when writing the information was type text in any of the columns that belong to the row immediately below the table (without actually inserting a new row myself). This creates a new row for the table where most of its format is kept, such as text size and formulas. However, I noticed that the row height doesn’t automatically change to that of the previous rows of the table, and changing it manually for each new row is very time consuming.
I would really appreciate it if anyone could share me the necessary Excel VBA code to fix this issue. I have thought of two possible approaches. The first one is a code that automatically sets all the rows of the table to a height of 20 (I want all rows to be the same size so no problem with that), supposing this would also affect new rows as I add them the way I mentioned. The second one would be a code that automatically sets every new row of the table to a size of 20. It doesn’t matter which one you choose, the easiest will be just fine. Thanks in advance.
I have a existing chart in pptx file, i just want to update its values on daily basis, these charts are already plotted from excel and paste into pptx, i just want to modify the charts ,
but i don't know how many properties are there in charts like series, category and title properties.
i am able to print the chart series and category data, but when i modify these with chart.replace_data(chart_data)
i am getting error like below
return self._chart_part.related_parts[xlsx_part_rId]
KeyError: 'rId4'
I ma using below code to print the values ,
for series in chart.plots:
for i in series.categories:
cat_list.append(i)
for series in chart.series:
for value in series.values:
ser_list.append(value)
the graph looks like below
How can i modify such graphs with updated values which i will be passing from excel to pptx.
I suspect the problem is rooted in the "pasting from Excel" step.
One thing you can try is to right-click on the chart and choose "Edit values in Excel". If that doesn't work for any reason, that would explain the error you're seeing. If it does work, try saving and run the python-pptx code against the saved version.
An alternative, perhaps more reliable fix would be to recreate the chart natively in PowerPoint, starting from adding a new column-chart and adjusting it until you get what you see here. Then you should be able to update it daily with pretty much the code you mentioned (although your ser_list variable will accumulate values for all series in the chart if there is more than one).
To understand why this could be happening, it's important to observe that a chart does not have to have an Excel worksheet "behind" it. It can, and perhaps does in this pasting case, simply have fixed literal values that are embedded in the chart XML itself. The up-side of this is the pasting operation doesn't need to create a whole Excel spreadsheet, which might be tricky in a cut-and-paste context. The down-side is the values can't be conveniently changed using the standard methods.
I haven't tried working with one of those lately so I don't know if editing and saving the data adds a new Excel object created from the embedded values or not, but this might explain the behavior you're seeing.
Its a bit of a weird one but I have a linked table within my database. The table is an excel table with identical field headings and data types and until recently has worked fine however now when I traverse the linked table in Access the data will change every other move, changing from the original row to show data in the row below. Iv had a script output the values of the top row and it displays normally however I cant append this linked table into anything and I assume its this glitch.
Im stumped and would love any ideas as to how this happened and how it can be fixed.
This is an unusual post as I've never quite heard of this type issue. To sanity check things I would suggest that you delete your excel table from the navigation pane in Access - and then relink it.
So then perhaps I didn't understand, and I am wondering what is meant in your first post by: "The table is an excel table with identical field headings and data types"
A link to excel is a qualified "table" so to speak. You should be able to double click on it within Access, it opens in data sheet view and you see all the data but you can't write to it. You can't write back into the excel.
You can query it....
You can append the query results of the excel into a true Access table.
I have to work with a large excel sheet that I get as our accounting program output. My job is to make it presentable for the CEO.
I made macros that get me this far but it's still not in the shape he wants it. As it is a very large table I would be very happy to find a way to automate it because it takes me a long time to make it presentable by hand.
The job has some logic to it so I hope someone has an idea how this could be solved.
What I have got so far:
Picture 1
And this is what I want it to be - separated by company name, and summed by saldo.
Picture 2
Your picture1 table is a good start. From that data source create a PivotTable. Put in rows of PivotTable every column name except SALDO, which you should put in values field. Now select PivotTable=>go to Design tab=>Report Layout=>Show in Tabular Form. After you changed layout to tabular, remove all Subtotals except Company Subtotal. If everything done correctly, you should have something similar to picture below.