We want to create a ppt presentation with the data we have. Each one would be customized for specific clients and then distributed to sales team for presentation to the client. One candidate said it would be fine to go from Access directly to Powerpoint charts/graphs etc. Most said they thought it could be done, but hadn't done it before, and suggested Access to Excel to Powerpoint. Thoughts?
You need to use PowerPoint Vba library.
Probably is easier to create a template or templates with placeholders and populate with data / charts.
From coding powerpoint view you will be writing the same code in msaccess and excel
You can use msaccess as database or you can put all application logic in an mdb file.
You can call Excel and PowerPoint from MSAccess.
1 msaccess as database
excel chart templates and PowerPoint templates.
another msaccess to keep ALL VBA code
you will call msaccess db / excel /powerpoint from this msaccess.
Be forewarned, this is ugly, but it works. We have weekly data in Excel that I need to put in a PowerPoint show. We use this to display on one our LED TVs. Copies data from Excel and Opens PowerPoint and populates into the PowerPoint tables.
'Remove all special font properties and set formatting
.FontStyle = "Regular"
.Strikethrough = False
.Superscript = False
.Subscript = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
.Name = "Arial"
.Size = 14
'Restore screen updates to display changes
Application.ScreenUpdating = True
Public Function populatePPT(sheet, intLastCol As Integer, slideNum As Integer, tableNum As Integer)
Dim rng As Range
Dim arr As Variant
Dim xlRow As Long
Dim pptRow As Long
Dim lngpptRow As Long
Dim intPPTTableRow As Long
Dim intPPTTableCol As Long
Dim pptTable As Object
Dim pptApp As Object
Dim sld As Object
Dim intCurrentSlide As Integer
Dim intTableShapeNum As Integer
Dim intShapeNum As Integer
Dim lngLastRow As Long
Dim lngPPTLastRow As Long
Dim PPApp As PowerPoint.Application
Dim PPPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
' Reference existing instance of PowerPoint
Set PPApp = GetObject(, "Powerpoint.Application")
' Reference active presentation
Set PPPres = PPApp.ActivePresentation
Set sld = PPPres.Slides(slideNum)
For intShapeNum = tableNum To sld.Shapes.Count
If sld.Shapes(intShapeNum).HasTable Then
intTableShapeNum = intShapeNum
lngPPTLastRow = sld.Shapes(intShapeNum).Table.Rows.Count
If intTableShapeNum = 0 Then
MsgBox "No table found on slide 1", vbCritical, "Error"
'Extract data from excel
lngLastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
intCurrentSlide = 1 ' Initialise slide index
intPPTTableRow = 2
Set pptTable = sld.Shapes(intShapeNum).Table
For xlRow = 1 To lngLastRow Step 100
For pptRow = xlRow To xlRow + 99 Step 1
lngpptRow = (pptRow - 1) Mod 100 + 1
If Cells(xlRow + lngpptRow - 1, 1).Value = "" Then Exit For
'Process row data to PPT
For intPPTTableCol = 1 To intLastCol
pptTable.Rows(intPPTTableRow).Cells(intPPTTableCol).Shape.TextFrame.TextRange.Text = Cells(xlRow + lngpptRow - 1, intPPTTableCol).Text
If intPPTTableRow >= lngPPTLastRow And slideNum = 1 Then
intCurrentSlide = intCurrentSlide + 1 'Increment slide index
intPPTTableRow = 2
Set sld = PPPres.Slides(intCurrentSlide)
Set pptTable = sld.Shapes(intTableShapeNum).Table
intPPTTableRow = intPPTTableRow + 1
' Format sheets
Dim i As Integer
For i = 1 To Sheets.Count
Dim PPT As PowerPoint.Application
' Open PowerPoint
Set PPT = New PowerPoint.Application
PPT.Visible = True
Slickdeals is able to share the best deals because of the contributions of users like you! If you found a great deal,
please share it with others by posting in our forums.
Welcome to Slickdeals!
Save money here by finding the lowest and cheapest price, best deals and bargains, and hot coupons. We're all about
community driven bargain hunting with thousands of free discounts, promo codes, reviews and price comparisons.
Don't worry, we'll help you find your way. If you haven't already, check out this
that explains the features of our site.