OLE/ActiveX/.Net in Microsoft Office is great demo-ware, but when you try to use it for real work, it is awfully ‘fiddly.’ I had a problem where I put linked Excel charts into a PowerPoint deck and when I told PowerPoint to refresh the charts from Excel, it refreshed only part of the chart.

• Going to Excel 2013 and copying the chart.
• Going to PowerPoint 2013, right-clicking, and choosing the Paste Option “Keep Source Formatting & Link Data”.
• This should paste the chart, and apply Excel’s formatting, and use “live” data from the spreadsheet. It uses live data (chart lines) but not chart title or formatting.
• When you paste the chart, it pastes in the current chart title and formatting and it does use them – only after the paste. When you later change the formatting or the chart title, it continues to apply the Excel formatting that was in effect when you pasted the link.
• In other words it amounts to “paste a link to the data” and “apply the current source formatting.”

If this happens to you, you’ll have to re-paste your charts – once – using a different method. After that, your source formatting (including the chart title) will be dynamically updated.

Here’s the magic way to paste/link and get it to do what you want:

• Go to Excel and copy the chart.
• Go to PowerPoint and select the Home tab on the Ribbon.
• Find the Paste button on the ribbon. (I looks like a clipboard. It is still there! I had to look twice for it.)
• Click the drop-down arrow on the Paste button.
• Click the words “Paste special”.
• Choose “Microsoft Excel Chart Object”.
• Press OK.

Sub RefreshLinks()
MsgBox "Refreshed"
End Sub

Sub PasteSpecialExcelChart()
Call Application.ActiveWindow.View.Slide.Shapes.PasteSpecial(DataType:=ppPasteChartObject, _
End Sub

Sub PasteSpecialExcelChartAndPosition()
Dim sr As ShapeRange
Dim currentSelection As Shape
Set sr = Application.ActiveWindow.View.Slide.Shapes.PasteSpecial(DataType:=ppPasteChartObject, _

' The just-pasted item automatically becomes the selected item.

Set currentSelection = ActiveWindow.Selection.ShapeRange(1)

currentSelection.LockAspectRatio = msoFalse

' Dimensions are in points, at 72 points per inch
currentSelection.Left = 18#

currentSelection.Height = 72 * 3#
currentSelection.Width = 72 * 9.5
currentSelection.Linkformat.AutoUpdate = ppUpdateOptionManual  ' or ppUpdateOptionAutomatic

answer = MsgBox("Put it on the top of the page (yes) or the bottom (no)?", vbYesNo)