Link Dynamic SQL Chart In Powerpoint - sql

I'm working on a project that needs to be displayed via Powerpoint. I have a SQL chart that is refreshed every morning at 9 am and 12 pm with updated results. I need this information to display within a Powerpoint slideshow for our team, but I'm not sure how to do this where I can see the updated results. I tried inserting the excel spreadsheet as an object and linking that way, but that has not worked.

If the chart is in Excel and automatically refreshes, try it like so:
First, make sure that the PPT file and the XL file are in the same folder if possible.
Select the chart in Excel and rightclick/copy.
Switch to PowerPoint.
Use Paste Special and put a check next to Link to paste the chart into PPT.
I would paste it onto a slide that does NOT have a content placeholder; delete it or put some text into it if one's already there, then paste the chart.
PowerPoint should now update the chart each time you open the presentation, assuming the data/chart have changed in XL.

Related

Is it possible to extract the format options of an Excel chart into VBA code?

I am writing a macro that will automatically create a chart based off some data in a table. However, the chart format that I need to use is very complicated (20 columns of data all displayed in a particular custom format), and I don't know how to recreate that format with the chart editor, let alone VBA.
Basically, I want to be able to take an example of this chart format, and somehow get the VBA code that one would use to create a chart of this format directly in VBA, so I can include this code in the macro.
I was considering making a chart template .crtx file and including it with the spreadsheet in a .zip when the user downloads it, but templates seem to only work when they are located under User\AppData\Roaming\Microsoft\Templates\Charts, and I don't want to put the user through having to manually move this file for the macro to work. Alternatively, if anybody knows how to get a template to work when it isn't installed in this location that would be great as well!
Thanks in advance.
Include the chart with the original format in the workbook when you send it, and put the example chart on a sheet that is very hidden.
Then, write your macro such that it creates a chart of the same type with the new data and copies the formatting of the original chart.
How to make a sheet "very hidden": https://www.excel-university.com/make-an-excel-worksheet-very-hidden/
How to copy chart formatting: https://www.officetooltips.com/excel_2016/tips/a_quick_way_to_duplicate_all_of_the_custom_chart_formatting.html
Note: If you're struggling with how to use vba to copy the chart formatting, record a macro while executing the instructions at the second link.

Slide format getting changed when we paste a slide to new presentation

We are working on PowerPoint add-in application. In this application, we have a feature for programmatically create the presentation using slides. In between, we noticed an issue related to slide formatting.
The issue is, when we copy a slide in a presentation to new presentation, it seems that the slide format is getting changed. This issue is not related our add-in application. You can see the issue in PowerPoint itself.
Original slide in the presentation
When we copy slide to the new presentation, the format seems to get changed
You can see that graph section getting changed.
When we paste the slides, we will get following options. “Use destination Theme”, “Keep Source formatting” and “Picture”. Even if we selected the “Keep Source Formatting” option, our issue not gets resolved. When we paste the slide using “Picture” option it worked well, But we can’t edit such slides.
How do we paste the slide with the correct format and editable option? Is there any way to solve this issue? Any help would be appreciable.
Presentation link
https://docs.google.com/presentation/d/1uBmQukvmY5XflMXK1-3m0YXzCp4AXSh3Jknj1E_EpQU/edit?usp=sharing

Word VBA to refresh embedded Excel chart

I have embedded charts in a Word doc. When I update the data in Excel, so that the chart in the Excel workbook updates, and then go to the Word doc, I can manually select the embedded chart, select Design > Refresh Data, and the embedded chart in Word updates to show the new data.
When I try to record the Word VBA to do that, it won't let me do those actions.
I've looked everywhere I can think of in Word's object browser. I see that I can identify the embedded chart like this:
thisdocument.InlineShapes(1)
But I don't see how to refresh it. What do I need to do?
I found the answer here:
http://answers.microsoft.com/en-us/msoffice/forum/msoffice_word-msoffice_custom/what-is-the-vba-equivalent-of-refresh-data-for/b8405aca-716a-e011-8dfc-68b599b31bf5
thisdocument.InlineShapes(1).LinkFormat.Update
It worked fine in my tests.
And to break the link (in the word template) after updating, to avoid inadvertently updating the chart to one from a later run showing different data:
thisdocument.InlineShapes(1).LinkFormat.BreakLink

PowerPoint 2013 "PasteSpecial" won't embed Excel chart as OLE Object

I've written a macro in PowerPoint that, as part of its process, will convert a linked chart in a PowerPoint presentation to an embedded chart by copying the source Excel chart and pasting that copied chart in as an OLE object -- the specific command is, "sldComponent.Shapes.PasteSpecial(ppPasteOLEObject)".
Until today, this has worked fine in all versions from 2003 to 2010. However, when trying to run this function in 2013/365, I keep getting a run-time error stating "The specified data type is not available" (-2147188160 / 80048240). I also notice that in the Microsoft Developers Reference webpage, "ppPasteOLEObject" is no longer listed as an acceptable datatype for the PasteSpecial method (when used with the Shapes collection).
I have found several ways to programmatically paste the chart as a picture, but whenever I click on the pasted chart and try to access the data, I keep getting the message "The linked file is not available." I want the data to be entirely self-contained so the PowerPoint user can edit it without reference to the original Excel file. Interestingly, when I stop the PowerPoint macro at the buggy line and then manually click "Paste" on the ribbon, the copied chart does paste, fully embedded with data accessible, into the active slide -- so the chart is getting copied into the Clipboard; the PowerPoint macro is simply unable to read and paste it for some reason. Even more interestingly (read: frustratingly), the PasteSpecial(ppPasteOLEObject) command will work for tables copied from Excel, i.e. cell ranges, but not for charts.
What happened? How does one use VBA code in PowerPoint 2013 to embed (i.e. insert a previously-created, self-contained Excel chart including all data right in the presentation slide) an Excel chart in the new version?
ADD: I should also note that the command used to get the chart from the source worksheet in Excel is "xlCopySheet.ChartObjects(1).Select", then "appExcel.Selection.Copy". Is the problem that the chosen Copy syntax is not capturing the entire chart including data but only the display? What is the correct Copy syntax to use here?
ADD 2: Further specification: The original macro was saved and was running with both Excel and PowerPoint in Compatibility (97-2003) mode, although the apps themselves are the 2013/Office 365 versions.
If you paste the chart as a "Microsoft Office Graphic Object", the chart is pasted as an Excel chart. You can format it within PowerPoint using the Excel ribbon's Chart Tools tab, which appear in PowerPoint. If you click any of the edit/select data buttons, it opens the data in Excel.
If you paste the chart as a Microsoft Excel Chart Object, it is pasted as an embedded workbook (the entire workbook, not just the chart and its data), with a new chart sheet inserted in the embedded workbook, and this chart sheet is what is visible. You need to double click to format or edit the chart, which opens the embedded workbook in Excel, and may mess up the size of the embedded object (so it's chart-sheet sized, not chart-embedded-in-the-worksheet sized) and things like font size.
If I copy the chart in Excel and use this in the PowerPoint VB Immediate Window
activepresentation.Slides(3).Shapes.PasteSpecial ppPasteOLEObject
I get the second behavior.
You might want to try copying the chart using this:
xlCopySheet.ChartObjects(1).Chart.Copy

Create PPT Chart based on Excel information

I have a table in PPT that I copied over from excel and I want to create a PPT chart based on that information through VBA. What I want to know is, is there a way to create a chart based off of that table and not off of the little excel spreadsheet that PPT automatically opens? Any help would be greatly appreciated.
If the chart is inserted in the slide from PowerPoint itself, the chart uses the PowerPoint DataSheet as its data source. You can open this PowerPoint DataSheet in Excel and link it to the Excel data you want to plot.
Alternatively you can make the chart in Excel based on the Excel data, then copy the chart and paste it (using onw of the link options) into PowerPoint. It will behave as a native PowerPoint chart (which is really a native Excel chart) but it will be based on the Excel data.