Powerpoint updaten gedurende presentatie

Status
Niet open voor verdere reacties.

edwin13387

Gebruiker
Lid geworden
12 jun 2015
Berichten
46
Goede middag,

Er draait een presentatie waarin data getoond wordt uit een excel bestand.
Nu zit er in de powerpoint in invoegtoepassing die elke keer als slide 1 voor komt update.

Dit werkt tot nu toe goed, omdat de data per 1x per 24h wijzigt.
Helaas gaat dit nu naar waarschijnlijk 1x per 15 min, hierdoor zal de presentatie tegen read only aan gaan lopen.
Simpelweg stuurt excel 1 naar excel 2 en 2 is bron voor de presentatie.
Excel 1 kijkt voor het openen of het bestand read only is, powerpoint doet dit niet.

Nu wil ik dus het programma, wat waarschijnlijk een macro heeft, vervangen door een macro die kijkt of het read only is.

Code:
ActiveAplication.UpdateLinks
Dit stukje update de presentatie, en heb ik dus als basis gebruikt.

Code:
Sub update()
Dim xlApp As Object
Dim xlWorkBook As Object
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
If xlWorkBook("I:\OEE\testbestand\presentatie\test.xlsx").ReadOnly = False Then
ActiveAplication.UpdateLinks
End If
End Sub
Dit heb ik nu, maar dit werkt niet.
excel wordt wel geopend, maar de regel met update geeft een fout.
91 object of blokvariabele niet ingesteld.


Hoe kan ik dit voorkomen?

Tevens wil ik hierna een timer op de macro zetten, kan dat net zoals in excel?

In de bijlage het voorbeeld, (.doc=ppt)

alvast bedankt,
Edwin van Egmond
 

Bijlagen

  • test.xlsx
    13,2 KB · Weergaven: 43
  • UPDATE LINKS TEST.doc
    46,5 KB · Weergaven: 44
xlworkbook is niet gelinkt aan de applicatie. je draait dus 2 applicaties, maar de applicatie waar je:

"ActiveAplication.UpdateLinks" op uitvoert heeft geen open workbooks (die heb je namelijk niet geopend.)
 
Goede middag wampier,

Helaas snap ik er niet veel van, als ik het goed lees heb ik Excel en PowerPoint hier los van elkaar staan.
Nu zeg ik tegen een leeg Excel bestand te updaten, dat kan niet.

Moet ik het, na het vinden van de code, als volgt invullen?

Code:
Sub update()
Dim xlApp As Object
Dim xlWorkBook As Object
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
If xlWorkBook("I:\OEE\testbestand\presentatie\test.xlsx").ReadOnly = False Then
[color=red]open het excel bestand dat dus niet read only is[/color]
[color=red]Application.Presentations[/color].UpdateLinks
End If
End Sub
 
Code:
Set xlApp = CreateObject("Excel.Application")
hier maak je een excel aan

Code:
xlWorkBook("I:\OEE\testbestand\presentatie\test.xlsx").ReadOnly
hier doe je wat met "workbook" MAAR die heeft geen relatie met xlapp

Code:
xlWorkBook= xlApp.workbooks.open("I:\OEE\testbestand\presentatie\test.xlsx").ReadOnly

nu gebruik je xlApp als basis voor je workbook object. Heb code niet getest en neem aan dat die verder correct is, maar nu heb je een relatie tussen je excel opjecct en een workbook daarvan
 
iets verder

Goede morgen,

Inmiddels wat je aangaf verwerkt, en een beetje aangepast om geen foutmelding te krijgen.
Code:
Sub update()
Dim xlApp As Object
Dim xlWorkBook As Object
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
If xlApp.workbooks.Open("I:\OEE\testbestand\presentatie\test.xlsx").ReadOnly = True Then
MsgBox ("Read Only")
Else
MsgBox ("niet Read Only")
End If
xlApp.workbooks.Close
xlApp.Visible = False
End Sub

Dit werkt; het bestand wordt geopend, is het read only zegt de msgbox dit.
Als ik dit aanpas naar Application.Presentations.UpdateLinks of ActiveAplication.UpdateLinks loopt het weer fout.
Ik kijk zelf hoe dit kan, maar mogelijk wat tips?

mvg
Edwin
 
Open het excelbestand en powerpoint bestand naast elkaar op 1 computer.
Start de voorstelling (dia's wisselen eindeloos om de 2 seconden).
Verander waarden in het excelbestand en de dia's worden bijgewerkt.
Het excelbestand heeft de leiding, als er cellen worden aangepast geeft die powerpoint het sein om te updaten.
 

Bijlagen

  • helpmij edwin13387 excel to powerpoint slideshow dynamic update.zip
    52,5 KB · Weergaven: 46
Laatst bewerkt:
Kan je excel bestand 2 niet shared/gedeeld maken? Excel2007-lint Controleren-blok Wijzigingen-knop Werkmap delen.
 
Goede morgen alphamax,

De oplossing in je 1e post werkt goed, enkel is dit voor mij niet toepasbaar. Het bestand wordt op andere terminals ook gebruikt.
De 2e oplossing die je bied, shared, heb ik helemaal niet aan gedacht...

Volgens mij zou dit moeten kunnen ja, wel even kijken of het shared item geen conflict geeft.

mvg
Edwin
 
Hallo,

Helaas werkt shared ook niet, ik denk dat een macro alleen recht wil.
Op het moment dat excel naar het bewuste bestand schrijft, wordt de powerpoint tegen gehouden door read-only.

Ik blijf dus zoeken in een powerpoint macro, tops?

Overigens geprobeert alle meldingen uit te zetten:
Code:
Application.DisplayAlerts = False
Toch kon powerpoint niet updaten.

mvg
Edwin
 
solved

Uiteindelijk is het gelukt, dingen met een ' zijn test regels.
Deze kunnen weg.


Code:
Sub OnSlideShowPageChange()
    If elapsed = 0 Then elapsed = Timer
     'NOTE this is 15 SECONDS to test for 15 minutes use 900
    If Timer > elapsed + 10 Then
        elapsed = Timer
        Call UpdateLinks
    End If
End Sub
 
 
Sub OnSlideShowTerminate()
    elapsed = 0
End Sub
 
 
Sub UpdateLinks()
    Dim xlApp As Object
Dim xlWorkBook As Object
Set xlApp = CreateObject("Excel.Application")
'  ActivePresentation.SlideShowWindow.View.State = ppSlideShowPaused
'  xlApp.Visible = True
If xlApp.workbooks.Open("I:\OEE\testbestand\presentatie\test.xlsx").ReadOnly = True Then
' MsgBox ("Read Only")
xlApp.workbooks.Close
'  xlApp.Visible = False
'  ActivePresentation.SlideShowWindow.View.State = ppSlideShowRunning
Exit Sub
Else
' MsgBox ("niet Read Only")
With ActivePresentation
.UpdateLinks
End With
End If
xlApp.workbooks.Close
'  xlApp.Visible = False
'  ActivePresentation.SlideShowWindow.View.State = ppSlideShowRunning
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan