Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Copy Excel chart to PPT that is already open
I have an Excel application where the user can view tables and charts
in Excel and have the option of exporting the table and pie chart into a PowerPoint presentation. Here is my code that opens PPT and launches a macro I have in PPT that copies the Excel pie chart and table and pastes onto a new slide in the existing PPT file. This works fine, except when I return to the Excel workbook and find other tables I want to export into the PPT deck, this code opens a second (read-only) version of the original. What is the code to simply copy onto a PPT that is already open? Sub OpenPPT() Dim PPApp As PowerPoint.Application Dim PPPres As PowerPoint.Presentation Set PPApp = CreateObject("PowerPoint.Application") PPApp.Visible = msoTrue Set PPPres = PPApp.Presentations.Open("C:\data\TestPPT.ppt") '******Runs macro in PPT that copies data from excel and pastes onto PPT slides PPApp.Run (PPPres.Name & "!AddPieChart") End Sub I tried replacing Set PPApp = CreateObject("PowerPoint.Application") with Set PPApp = GetObject("PowerPoint.Application") but that doesn't work. Can anyone help me with this? Thank you, TB |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Copy Excel chart to PPT that is already open
try this
Sub OpenPPT() Dim PPApp As PowerPoint.Application Dim PPPres As PowerPoint.Presentation 'Get existing instance of PP if it's open; otherwise create a new one On Error Resume Next Set PPApp = GetObject("PowerPoint.Application") If Err Then Set PPApp = New PowerPoint.Application Set PPPres = PPApp.Presentations.Open("C:\data\TestPPT.ppt") Else Set PPPres = PPApp.Presentations("TestPPT.ppt") End If On Error GoTo 0 '******Runs macro in PPT that copies data from excel and pastes onto PPT slides PPApp.Run (PPPres.Name & "!AddPieChart") End Sub "Tony Bender" wrote: I have an Excel application where the user can view tables and charts in Excel and have the option of exporting the table and pie chart into a PowerPoint presentation. Here is my code that opens PPT and launches a macro I have in PPT that copies the Excel pie chart and table and pastes onto a new slide in the existing PPT file. This works fine, except when I return to the Excel workbook and find other tables I want to export into the PPT deck, this code opens a second (read-only) version of the original. What is the code to simply copy onto a PPT that is already open? Sub OpenPPT() Dim PPApp As PowerPoint.Application Dim PPPres As PowerPoint.Presentation Set PPApp = CreateObject("PowerPoint.Application") PPApp.Visible = msoTrue Set PPPres = PPApp.Presentations.Open("C:\data\TestPPT.ppt") '******Runs macro in PPT that copies data from excel and pastes onto PPT slides PPApp.Run (PPPres.Name & "!AddPieChart") End Sub I tried replacing Set PPApp = CreateObject("PowerPoint.Application") with Set PPApp = GetObject("PowerPoint.Application") but that doesn't work. Can anyone help me with this? Thank you, TB |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Copy Excel chart to PPT that is already open
Joel,
Thanks for this, but it didn't work. I got a Run-time error 91 "Object variable or With Block variable not set" and when I clicked Debug it highlighted this line: PPApp.Run (PPPres.Name & "!AddPieChart") When I remove this line the macro doesn't do anything. TB |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Copy Excel chart to PPT that is already open
I made a couple of changes to get the code to run. I not sure what you are
trying to do. I went to the power point VBA help and didn't find a RUN method. I did find a RUNS method and here is an example of that instruction. I didn't know the slide number or object that yhou are using. With Application.ActivePresentation.Slides(1).Shapes(2) _ .TextFrame.TextRange With .Runs(2).Font If .Italic Then .Bold = True End If End With End With Sub OpenPPT() Dim PPApp As PowerPoint.Application Dim PPPres As PowerPoint.Presentation 'Get existing instance of PP if it's open; otherwise create a new one On Error Resume Next Set PPApp = GetObject(, "PowerPoint.Application") '<added comma If Err Then Set PPApp = New PowerPoint.Application PPApp.Visible = msoTrue '<made application visible Set PPPres = PPApp.Presentations.Open("C:\temp\slide 1.ppt") Else Set PPPres = PPApp.Presentations("slide 1.ppt") End If On Error GoTo 0 '******Runs macro in PPT that copies data from excel and 'pastes onto PPT slides PPApp.Run (1) End Sub "Tony Bender" wrote: Joel, Thanks for this, but it didn't work. I got a Run-time error 91 "Object variable or With Block variable not set" and when I clicked Debug it highlighted this line: PPApp.Run (PPPres.Name & "!AddPieChart") When I remove this line the macro doesn't do anything. TB |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
Copy Excel chart to PPT that is already open
Usually get object if a filename which is the 1st parameter
set PPApp = getobject("c:\temp\abc.ppt") The 2nd parameter is the application. "Tony Bender" wrote: On Sep 25, 10:27 pm, Joel wrote: I made a couple of changes to get the code to run. I not sure what you are trying to do. I went to the power point VBA help and didn't find a RUN method. I did find a RUNS method and here is an example of that instruction. I didn't know the slide number or object that yhou are using. With Application.ActivePresentation.Slides(1).Shapes(2) _ .TextFrame.TextRange With .Runs(2).Font If .Italic Then .Bold = True End If End With End With Sub OpenPPT() Dim PPApp As PowerPoint.Application Dim PPPres As PowerPoint.Presentation 'Get existing instance of PP if it's open; otherwise create a new one On Error Resume Next Set PPApp = GetObject(, "PowerPoint.Application") '<added comma If Err Then Set PPApp = New PowerPoint.Application PPApp.Visible = msoTrue '<made application visible Set PPPres = PPApp.Presentations.Open("C:\temp\slide 1.ppt") Else Set PPPres = PPApp.Presentations("slide 1.ppt") End If On Error GoTo 0 '******Runs macro in PPT that copies data from excel and 'pastes onto PPT slides PPApp.Run (1) End Sub "Tony Bender" wrote: Joel, Thanks for this, but it didn't work. I got a Run-time error 91 "Object variable or With Block variable not set" and when I clicked Debug it highlighted this line: PPApp.Run (PPPres.Name & "!AddPieChart") When I remove this line the macro doesn't do anything. TB- Hide quoted text - - Show quoted text - Joel, Thank you so much for your help with this. It works fine now. I am curious though how adding the comma made the difference. Set PPApp = GetObject(, "PowerPoint.Application") '<added comma Thanks again for your help. Tony |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
copy chart formatting and chart templates in Excel 2007 | Charts and Charting in Excel | |||
From excel - open word doc and copy form field contents to excel c | Excel Programming | |||
Why does excel create a copy of the worksheet i open | Excel Discussion (Misc queries) | |||
i can't open excel workbook if it has a chart in it! | Excel Discussion (Misc queries) | |||
Excel 2003 Workbooks.Open with CorruptLoad=xlRepairFile fails on Excel 5.0/95 file due to Chart, with Error 1004 Method 'Open' of object 'Workbooks' failed | Excel Programming |