H
Henk
I found some code here to export a chart from Excel to PowerPoint. What I
want it to do is to export the chart to a new slide at the end of the
presentation. now have to following code :
Public Sub ChartToPowerPoint()
Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim NewIndex As Integer
Set PPApp = GetObject(, "Powerpoint.Application")
Set PPPres = PPApp.ActivePresentation
PPApp.ActiveWindow.ViewType = ppViewNormal
NewIndex = PPPres.Slides.Count + 1
PPPres.Slides.Add(Index:=NewIndex, Layout:=ppLayoutBlank).Select
PPPres.Slides(NewIndex).Select
Set PPSlide = PPPres.Slides
_(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
ActiveSheet.ChartObjects("Graph01").Activate
ActiveChart.ChartArea.Select
ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen,
Format:=xlBitmap
PPSlide.Shapes.Paste.Select
PPApp.ActiveWindow.Selection.ShapeRange.Height = 303.5
PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
Set PPSlide = Nothing
Set PPPres = Nothing
Set PPApp = Nothing
Exit Sub
End Sub
If there is no slide in the presentation, it works 1 time, 2 times, n times.
If there is 1 slide in the presentation it fails the first time (end macro)
and it works the second time and third time and n time.
If at some time I go to the PP presentation and select another slide
manually, and start the macro after that, it fails the first time, (end
macro) and it works the second time and third time and n time.
The error message that I get for "PPSlide.Shapes.Paste.Select" is :
Run-time error '-2147188160(80048240)':
Shape (unknown member) : Invalid request. To select a shape its view must be
active.
I can not find out why the shape (which is copied to the last slide of the
presentation, by the way) is not active at that moment. Neither can I find a
way to activate it.
want it to do is to export the chart to a new slide at the end of the
presentation. now have to following code :
Public Sub ChartToPowerPoint()
Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim NewIndex As Integer
Set PPApp = GetObject(, "Powerpoint.Application")
Set PPPres = PPApp.ActivePresentation
PPApp.ActiveWindow.ViewType = ppViewNormal
NewIndex = PPPres.Slides.Count + 1
PPPres.Slides.Add(Index:=NewIndex, Layout:=ppLayoutBlank).Select
PPPres.Slides(NewIndex).Select
Set PPSlide = PPPres.Slides
_(PPApp.ActiveWindow.Selection.SlideRange.SlideIndex)
ActiveSheet.ChartObjects("Graph01").Activate
ActiveChart.ChartArea.Select
ActiveChart.CopyPicture Appearance:=xlScreen, Size:=xlScreen,
Format:=xlBitmap
PPSlide.Shapes.Paste.Select
PPApp.ActiveWindow.Selection.ShapeRange.Height = 303.5
PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
PPApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
Set PPSlide = Nothing
Set PPPres = Nothing
Set PPApp = Nothing
Exit Sub
End Sub
If there is no slide in the presentation, it works 1 time, 2 times, n times.
If there is 1 slide in the presentation it fails the first time (end macro)
and it works the second time and third time and n time.
If at some time I go to the PP presentation and select another slide
manually, and start the macro after that, it fails the first time, (end
macro) and it works the second time and third time and n time.
The error message that I get for "PPSlide.Shapes.Paste.Select" is :
Run-time error '-2147188160(80048240)':
Shape (unknown member) : Invalid request. To select a shape its view must be
active.
I can not find out why the shape (which is copied to the last slide of the
presentation, by the way) is not active at that moment. Neither can I find a
way to activate it.