Treat .mdb as .xlsx? - excel

I recently made an Excel workbook (with the help of Stackoverflow) where I have a regular input of data (each entry is one row with different columns). I then have a macro that extracts the data from a specified row to a different sheet and saves this sheet as a .PDF.
That way, I can extract specific data from this Excel "database" to a readable pdf. I do this because I need a paper version from specific entries.
For a different project I need to implement the same principle. The only difference is that I need to work with an .mdb file where the data is stored, instead of an Excel workbook.
Is there a way I can reuse my code from Excel or is it now a completely different story?
Thank you for the advice.

You can link your excel workbook to your Access tables. On the "DATA" ribbon there is a section for "External Data".
Once you've got the Access data displayed on one of your worksheets, you should be able to adapt your existing code accordingly.
From Microsoft:
Connect an Access database to your workbook

Related

Use formula across embedded excel sheets in MS Word (Office 365)

I have an excel sheet embedded in an MS-Word document. At another place in same document I want to put in some outcomes from the embedded spreadsheet (2 cells in particular). The word file needs to be shareable too.
I have tried "linking" excel sheet, but then have to share it (the excel) along with the docx file. Also tried embedding different spreadsheet, but the formulas in the sheets do not talk (or cannot talk to my knowledge)
Is there any way to do this in easy fashion?
What you are asking is not possible. The only workarounds would be to use:
a) an external Excel workbook, with each of your embedded worksheets linked to that; or
b) a macro to activate a given 'source' embedded worksheet in the document, gather the required data from there, then insert that data in the corresponding 'target' worksheet.

Pre-populating PowerPoint file with Excel input

I am currently in the following situation:
I have an Excel file where I perform calculations and charts + diagrams are created based on the calculations.
I have a PowerPoint report where I have to copy-paste these visualizations into.
I will need to repeat this process for many Excel files, all containing the same lay out. You can view them as a questionnaire: each Excel file is completed with different answers, though the structure remains the same.
Is there a way for me to create a template PowerPoint report file, where at the start I select which Excel file to 'load', and it pre-populates my PowerPoint file with the correct charts from the selected Excel file?
ndeed, there is a free option available. With SlideFab 2 (lite) you can automate Excel to Powerpoint without coding: You would need to setup the Powerpoint template and link all shapes with the required Excel ranges or charts. Then SlideFab creates the slides for you. When the structure is really the same, you could just let SlideFab connect to the next Excel file and rerun the slide-making process again.
You could also consider using RDBmerge to collect all workbook sheets into one Excel and using formulas to create a kind of staging area which is used for linking with Powerpoint. This would have the benefit that when you iterate a list of worksheet names, your lookup (e.g. using vlookup or index/match) functions would grab the appropriate data into the staging area. SlideFab could then create all slides at once through changing the selected worksheet in a repetitive way.
In case of questions, feel free to reach out.
Disclaimer: I am the owner of SlideFab 2.
Cheers
Jens

How to link two Excel sheets in MS Word Mail Merge?

I have two Excel Sheets, Attendance.xlsx & Marks.xlsx, having two different data. And, I have a Word file, in which I am creating a Letter with fixed template using Mail Merge option.
I am not able to link those Excel sheet values into the word file. I can select only one sheet's data at any time.
Kindly let me know how to solve the problem, without copy pasting the data into one sheet.
A mailmerge can only reference one data source at a time. In the case of an Excel workbook, for example, that means a single worksheet. However, a mailmerge main document can contain DATABASE fields and each DATABASE field can reference whatever datasource you want it to. A more detailed outline of the process can be found at: https://answers.microsoft.com/en-us/msoffice/forum/msoffice_word-mso_winother-mso_2010/mail-merge-to-a-word-table-on-a-single-page/4edb4654-27e0-47d2-bd5f-8642e46fa103 . For a working demonstration of a mailmerge referencing one worksheet in an Excel data source and a DATABASE field referencing a different worksheet, see: http://www.msofficeforums.com/mail-merge/37844-mail-merge-using-one-excel-file-multiple.html. The same technique can be extended to referencing worksheets in different workbooks.

What is an invisible sheet named "D%$&01_DevSheet" doing in an Excel OOXML workbook?

I'm writing a program to read some data from an OOXML Excel Workbook using Apache POI that was provided to me as example input data. There is a strange sheet named D%$&01_DevSheet at the end. It is full of formula cells with weird formulas that reference most of the other sheets in the workbook. Here is an example of one of the cells:
'Horizontal Agreements'!S15+"8I/!%4\"
It is also not visible when the worksheet is opened in Excel.
I've never run across such a sheet before. It looks like some kind of internal Excel structure. Google searches for "D%$&01_DevSheet" and "excel" "DevSheet" have turned up nothing useful.
This sheet is not present in any test workbooks I've created. However, I'm not much of an Excel user and I did not exhaustively try all Excel features.
At this point, I'm going to hard code a rule that excludes sheets ending in _DevSheet from processing. However, since this stuff is turning up in my input, I think I should understand and handle it properly, so I have some basic questions:
What does Excel use sheets like D%$&01_DevSheet for?
What user actions cause them to be created?
Are they named regularly?
What is the most reliable way of detecting sheets like this Apache POI?
Normally Excel does not use such a sheet, so it seems to be added by some specific application or tool that was used to create this Excel workbook. It seems the developer of the application stores formulas and other things in a separate sheet for separation from the user-visible content.
So likely you will need to contact/research whichever application provided this file and get more information about this sheet from there.
You can probably only exclude these sheet by name as you already did.

Saving individual sheet in Excel VBA

Currently we have a Excel VBA application, which consists of 25-30 Excel sheet (and all of those sheets all hidden and we do background processing on them and display it to VBA forms UI), and we have developed a UI using VB forms. But problem we are facing is whenever we click on Save button using this code:
ThisWorkbook.Save
But this saves entire workbook not an individual sheet, so even if we make changes in single sheet it saves entire workbook and this save processing makes very slow (since it needs to save all excel sheet containing lot of data unnecessary, even if there is no changes).
My question is is there any way we can save "only one sheet in a particular excel sheet" not an entire excel file?
Note: I am a Java developer and I worked on VBA before, But it was years back, and I have forgotten bit. Any guidance would be appreciated. Or any pointers on how to handle this situation would be appreciated. Please let me know if you need any more information, I can edit this question.
What I have tried already? I did a lot of research from yesterday, I searched in previous questions on SO, but didn't get any useful information. As per my research it says we cannot do this. Am I on right path?
The short answer is no. You cannot save a single worksheet at a time.
You may want to try to reduce the amount of data in the workbook. Try storing data in several workbooks and when it is needed, open that specific workbook, make the needed changes, and then close it.
If it is necessary to have access to all data at once then consider using access or some other database.
It is also possible that the sheets have "blank data". Cells that don't contain anything in them but excel thinks they do so when saving it tries to save way more than needed.
Assuming that it is the active worksheet that you want to save then you could do something like this:
ActiveSheet.Copy
ActiveWorkbook.Close True, "path"
This copies the active worksheet which creates a new workbook which will become the active workbook. Then just call the close method on that and give it a file name.
I think you should consider splitting your application into multiple workbooks:
The workbook that contains all the logic, user forms and programming code. This workbook handles all other workbooks as well as the displaying of it. Potentially, this could be even an "Application Specific Addin", that stays dormant but activates as soon as any of it's subsequent workbooks gets opened. For this architecture approach check out the section on "Application Specific Addins" in this link.
This workobook/add-in can also hide the other workbooks, so that the user will not notice it's multiple workbooks.
One or multiple data workbooks: Depending how interlinked the data is, you can separate this, e.g. in a "Sales data" workbook which contains the large database, as "Base data" workbook, that contains all the smaller data (e.g. products or stores tables).
This way, you can reduce the saving to the "relevant" sheets. However, of course this requires quite a bit of reprogramming - but it's worth the effort, as for instance it also allows to provide updates/bug fixes without having the transfer the data between versions, as you only need to distribute the the file with programming logic. :-)

Resources