Powerpoint aansturen vanuit Excel macro

Status
Niet open voor verdere reacties.

Sickbock

Gebruiker
Lid geworden
14 jul 2012
Berichten
39
Ik wil in Excel berekeningen uitvoeren en deze dan vervolgens presenteren op een sheet.
Het tonen van de verschillende Excel sheets wil ik onderbreken door het vertonen van een korte Powerpoint presentatie. De verschillende Powerpoint presentaties worden gevormd door aangepaste voorstellingen vanuit een basis presentaties. Voor deze voortgang moet dan de Powerpoint presentatie aangeroepen worden vanuit de Excel macro. Voorwaarde voor de gebruikte code is dat de basis Powerpoint presentatie al wel is geopend. Dit werkt op zich wel goed

De Excel code rondom het aanroepen van de Powerpoint presentatie ziet er als volgt uit:

Sub programma()
Dim PPT As Object
Set PPT = GetObject(, "Powerpoint.application")
PPT.Visible = True
PPT.Run "D:/PPTfile.pptm!macro1"

Dim XL As Object
Set XL = GetObject(, "Excel.application")
XL.Visible = True
Sheets("Blad2").Select
End Sub

De macro in het basis Powerpoint bestand ziet er als volgt uit:

Sub macro1()
With ActivePresentation.SlideShowSettings
.RangeType = ppShowNamedSlideShow
.SlideShowName = "lame1"
.Run
.EndingSlide = 2
End With
End Sub
Deze afloop geeft twee problemen:
1. De afloop van de Excel macro stopt niet wanneer de Powerpoint macro loopt. De presentatie loopt wel maar de Excel sheet �Blad2� wordt onmiddellijk getoond.
2. Na afloop van de Powerpoint presentatie wordt aangepaste voorstelling niet verlaten en wordt niet teruggekeerd naar de basispresentatie, maar blijft als laatste een zwart scherm van de aangepaste voorstelling staan. Bij een volgende aanroep van Powerpoint keert het programma terug naar dit zwarte scherm en heeft er geen Powerpoint vertoning plaats.

Ik heb dit trachten op te lossen door na de terugkeer van de Excel macro in het Excel domein een timer te laten lopen voor de duur van de aangepaste Powerpoint vertoning.

Sub programma()
Dim PPT As Object
Set PPT = GetObject(, "Powerpoint.application")
PPT.Visible = True
PPT.Run "D:/PPTfile.pptm!macro1"

Dim XL As Object
Set XL = GetObject(, "Excel.application")


duur = 15
begin = Timer
Do While Timer < begin + duur
Loop

Set PPT = Nothing
XL.Visible = True
Sheets("Blad2").Select
End Sub
Nu wordt de aangepaste Powerpoint vertoning wel in beeld gebracht, maar omdat de processor nu heel erg druk is met het continu afvragen van de actuele tijd, gaat dit ernstig ten koste van de kwaliteit van de Powertpoint vertoning.

In dit verband heb ik een tweetal vragen:
1. Kent iemand een betere methode om de Powerpoint macro geheel te laten beëindigen alvorens de Excel macro wordt vervolgd?
2. Kent iemand een methode om het zwarte eindscherm van de aangepaste Powerpoint vertoning te verlaten en terug te keren naar de basispresentatie?
 
Laatst bewerkt:
Plaats eerst je codes eens in een codetag. Zo is het geen lezen.
 
edmoor,
Is het zo beter te lezen? Ik ben weliswaar geen beginner in VBA maar wel op de Helpmij site, vandaar dat ik even moest zoeken wat je nu wel bedoelde
 
Dat geeft niets, maar zo is al het een stuk leesbaarder :)
Al bedoel ik met de codetag het # teken in de geavanceerde editor.
Dit geeft een niet proportioneel lettertype en inspringpunten blijven dan behouden.
 
Laatst bewerkt:
Misschien dat dit je verder helpt.
Code:
Sub hsv()
 AppActivate "Microsoft excel"                   'focus Excel on top
 AppActivate "Windows Internet explorer"  'focus IE on top
 AppActivate "Microsoft Powerpoint"          'focus Powerpoint on top
End Sub
 
Beste HSV

Dit geeft helaas niet het gewenste resultaat. Misschien nog meer suggesties?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan