Hi,
Hoping someone could help, I have an excel workbook with several tabs/worksheets. and I found some VBA that converted a range on each worksheet into a shape a pasted it into a separate slide in a new work book.
This however no longer works since we have moved to Office 2013.
When the debugging screen comes up it highlights this row in step 7 - PPSlide.Shapes.Paste.Select
Sub WorkbooktoPowerPoint()
'Step 1: Declare your variables
Dim pp As Object
Dim PPPres As Object
Dim PPSlide As Object
Dim xlwksht As Worksheet
Dim MyRange As String
Dim MyTitle As String
ThisFile = Sheets("Front Page").Range("G7").Value
'Step 2: Open PowerPoint, add a new presentation and make visible
Set pp = CreateObject("PowerPoint.Application")
Set PPPres = pp.Presentations.Add
pp.Visible = True
'Step 3: Set the ranges for your data and title
MyRange = "A1:AZ40" '<<
'Step 4: Start the loop through each worksheet
For Each xlwksht In ActiveWorkbook.Worksheets
xlwksht.Select
Application.Wait (Now + TimeValue("0:00:1"))
'Step 5: Copy the range as picture
xlwksht.Range(MyRange).CopyPicture _
Appearance:=xlScreen, Format:=xlPicture
'Step 6: Count slides and add new blank slide as next available slide number
'(the number 12 represents the enumeration for a Blank Slide)
SlideCount = PPPres.Slides.Count
Set PPSlide = PPPres.Slides.Add(SlideCount + 1, 12)
PPSlide.Select
'Step 7: Paste the picture and adjust its position
PPSlide.Shapes.Paste.Select
pp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
pp.ActiveWindow.Selection.ShapeRange.Top = 1
pp.ActiveWindow.Selection.ShapeRange.Left = 1
pp.ActiveWindow.Selection.ShapeRange.Width = 720
'Step 8: Add the title to the slide then move to next worksheet
Next xlwksht
'Step 9: Save and close presentation
With PPPres
FileName = ThisWorkbook.Path & "\" & ThisFile & "_Scoreboard" & ".ppt"
.SaveAs FileName
.Close
'Application.Quit
End With
'Step 10: Memory Cleanup
pp.Activate
Set PPSlide = Nothing
Set PPPres = Nothing
Set pp = Nothing
End Sub
I hope someone can help.
Thank you in advance.
Brad
Bookmarks