na enig speurwerk online ben ik nog niet tot een concreet antwoord gekomen voor mijn uitdaging:
Vanuit MS Access een tabel / query direct in het excel werkblad wegschrijven van een grafiek in powerpoint 2007
Voorbeeld proces:
1 Een x aantal analyses (query's & output tabellen) zijn voor geprogrammeerd in Access
2 Vanuit Access moet Powerpoint geopend worden
3 slides toegevoegd met grafieken
4 grafieken bijwerken met de tabel/ query inhoud vanuit access
5 powerpoint opslaan
Eerder heb ik dit al werkend gekregen voor Office 2003 mbv VBA, maar ben nu een functie aan het schrijven die ook voor 2007 moet gaan werken straks.
Nu hebben ze bij MS de grafiekobjecten veranderd: in plaats van de MS Graph builder hebben ze nu Excel 2007 grafiek objecten erin gezet. Het issue treedt nu dus ook op bij stap 4 waarbij ik het excel object achter het grafiek object wil aanroepen om daar data in weg te schrijven.
Nu vind ik verschillende 'oplossingen':
- een poging die ik niet werkend kan krijgen:
http://www.eggheadcafe.co...data-in-embedded-exc.aspx
- meldingen dat het simpelweg niet meer mogelijk is om dmv VBA grafieken bij te werken in PowerPoint:
http://www.experts-exchan...owerpoint/Q_23805552.html
http://www.pptfaq.com/FAQ00889.htm
If you need to automate charts in PowerPoint 2007, it'd be best if you change your name and move to another town where nobody knows that you do PowerPoint programming.
The chart objects you get in PowerPoint 2007 when you add a new chart expose no methods or properties to VBA. In short, you can't do anything with them in code.
In het forum van egghead lijken ze het wel voor elkaar te krijgen, maar bij mij wil hij dit stuk:
Set oxl = oPPTShape.OLEFormat.Object
niet accepteren
[code=VBA]
Dim oPPTFile As PowerPoint.Presentation
Dim oPPTShape As PowerPoint.Shape
Set oPPTFile = PowerPoint.ActivePresentation
oPPTFile.Slides(2).Select
Set oPPTShape = oPPTFile.Slides(2).Shapes("columnChart")
Dim oxl As Excel.Workbook
Dim xchart As Excel.Chart
' Explicitly DIM the xlsheet variable
Dim xlsheet As Excel.Worksheet
Set oxl = oPPTShape.OLEFormat.Object
Set xchart = oxl.Charts(1)
Set xlsheet = oxl.Worksheets(1)
xlsheet.Cells(2, 2) = 123
xlsheet.Cells(3, 2) = 234
xlsheet.Cells(2, 3) = 345
xlsheet.Cells(3, 3) = 456
xlsheet.Cells(2, 4) = -11
xlsheet.Cells(3, 4) = -1
xlsheet.Cells(2, 5) = 8
xlsheet.Cells(3, 5) = 4
Set xlsheet = Nothing
Set xchart = Nothing
Set oxl = Nothing
[/code=VBA]
Vanuit MS Access een tabel / query direct in het excel werkblad wegschrijven van een grafiek in powerpoint 2007
Voorbeeld proces:
1 Een x aantal analyses (query's & output tabellen) zijn voor geprogrammeerd in Access
2 Vanuit Access moet Powerpoint geopend worden
3 slides toegevoegd met grafieken
4 grafieken bijwerken met de tabel/ query inhoud vanuit access
5 powerpoint opslaan
Eerder heb ik dit al werkend gekregen voor Office 2003 mbv VBA, maar ben nu een functie aan het schrijven die ook voor 2007 moet gaan werken straks.
Nu hebben ze bij MS de grafiekobjecten veranderd: in plaats van de MS Graph builder hebben ze nu Excel 2007 grafiek objecten erin gezet. Het issue treedt nu dus ook op bij stap 4 waarbij ik het excel object achter het grafiek object wil aanroepen om daar data in weg te schrijven.
Nu vind ik verschillende 'oplossingen':
- een poging die ik niet werkend kan krijgen:
http://www.eggheadcafe.co...data-in-embedded-exc.aspx
- meldingen dat het simpelweg niet meer mogelijk is om dmv VBA grafieken bij te werken in PowerPoint:
http://www.experts-exchan...owerpoint/Q_23805552.html
http://www.pptfaq.com/FAQ00889.htm
If you need to automate charts in PowerPoint 2007, it'd be best if you change your name and move to another town where nobody knows that you do PowerPoint programming.
The chart objects you get in PowerPoint 2007 when you add a new chart expose no methods or properties to VBA. In short, you can't do anything with them in code.
In het forum van egghead lijken ze het wel voor elkaar te krijgen, maar bij mij wil hij dit stuk:
Set oxl = oPPTShape.OLEFormat.Object
niet accepteren
[code=VBA]
Dim oPPTFile As PowerPoint.Presentation
Dim oPPTShape As PowerPoint.Shape
Set oPPTFile = PowerPoint.ActivePresentation
oPPTFile.Slides(2).Select
Set oPPTShape = oPPTFile.Slides(2).Shapes("columnChart")
Dim oxl As Excel.Workbook
Dim xchart As Excel.Chart
' Explicitly DIM the xlsheet variable
Dim xlsheet As Excel.Worksheet
Set oxl = oPPTShape.OLEFormat.Object
Set xchart = oxl.Charts(1)
Set xlsheet = oxl.Worksheets(1)
xlsheet.Cells(2, 2) = 123
xlsheet.Cells(3, 2) = 234
xlsheet.Cells(2, 3) = 345
xlsheet.Cells(3, 3) = 456
xlsheet.Cells(2, 4) = -11
xlsheet.Cells(3, 4) = -1
xlsheet.Cells(2, 5) = 8
xlsheet.Cells(3, 5) = 4
Set xlsheet = Nothing
Set xchart = Nothing
Set oxl = Nothing
[/code=VBA]
Een specialist weet veel van weinig en leert steeds meer van steeds minder, tot hij uiteindelijk alles weet van niets.