![]() |
|
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
![]()
Hello the forum !
I'm looking for an answer to my problem with POWERPOINT 2013 just installed on a new PC running Windows 7 (64 bits). the problem : I have an EXCEL macro generating PPT slides according to the data. this macro concatene different slides created by others macros everything works perfectly with POWERPOINT 2010 but with PPT 2013, I got the error : Execution error 2147023170 - Failure call of distant procedure in fact, it begins correctly and at a moment (never the same time) PPT fails and close, so the macro is stopped and the program doesn't end correctly. When I open PPT, I find one or more slides generated by the different EXCEL macros, waiting for file saving with the information : recovery file do you want to save it ? I send this message on french forums, but it seems that PPT 2013 is too new and at the moment, I haven't get the answer. Has somebody an idea on what could happens ? for me it seems like if the program go to quickly and do not save and close correctly PPT, even if the code to save and close is there. I give you the Excel code (sorry comments are in french) : Code:
Sub ConcatenerPresentations() Dim Ppa As PowerPoint.Application Dim Pdevis As PowerPoint.Presentation Dim PAgr As PowerPoint.Presentation Dim PRecap As PowerPoint.Presentation Dim PCouleurs As PowerPoint.Presentation Dim PPlaylist As PowerPoint.Presentation Dim PScenario As PowerPoint.Presentation Dim PCGV As PowerPoint.Presentation Set Ppa = New PowerPoint.Application Ppa.Visible = True 'ouverture de la présentation d'accueil contenant la macro PPT Set Pdevis = Ppa.Presentations.Open(Filename:="C:\DEVIS\NewDevis.pptm") 'ouverture de la page de garde du devis Set PEntete = Ppa.Presentations.Open(Filename:="C:\DEVIS\EnteteDevis.pptx") '1 - insertion de l'entête du devis : '========================================================================================= Pdevis.Slides.InsertFromFile "C:\DEVIS\EnteteDevis.pptx", Pdevis.Slides.Count, 1, -1 'sauvegarde du fichier PPT Pdevis.SaveAs Filename:="C:\DEVIS\NouveauDevis.pptm" PEntete.Close '2 - insertion du PPT Présentation SDF : '========================================================================================= Pdevis.Slides.InsertFromFile "C:\DEVIS\DevisSte.pptx", Pdevis.Slides.Count, 1, -1 'sauvegarde du devis PPT Pdevis.SaveAs Filename:=ThisWorkbook.Path & "\" & "NouveauDevis.pptm" '3 - insertion du récapitulatif des produits par calibre '========================================================================================= Set PRecap = Ppa.Presentations.Open(Filename:="C:\DEVIS\RecapProdCal.pptx") Pdevis.Slides.InsertFromFile "C:\DEVIS\RecapProdCal.pptx", Pdevis.Slides.Count, 1, -1 Pdevis.Save PRecap.Close 'on l'ajoute à la suite de "NewDevis" '4 - insertion du graphique des couleurs du devis '========================================================================================= Set PCouleurs = Ppa.Presentations.Open(Filename:="C:\DEVIS\CouleursDevis.pptx") Pdevis.Slides.InsertFromFile "C:\DEVIS\CouleursDevis.pptx", Pdevis.Slides.Count, 1, -1 Pdevis.Save PCouleurs.Close '5 - insertion du scénario et playlists en fonction du devis sélectionné '========================================================================================= 'si on fait un devis "A composer", on zappe les titres Scénario et playlists et on va directement à la suite du programme Sheets("feux").Select Range("M2").Select If Range("M2") = "COMPO" Then GoTo suite1 'PROGRAMME SUITE 1 : insertion du devis '************************************************************************************** suite1: 'AJOUT DU DEVIS : '================ 'on ajoute la présentation "devis" après le dernier slide de "ScenarioPlaylist.pptx" 'comme on ne connaît pas le nombre de slides composant les différentes présentations, on utilisera : Pdevis.Slides.Count, 'qui comptera le nbre de slides composant "NouveauDevis.pptm" puis 1 (1er slide de "devis.pptx" à (-1) pour insérer la totalité des 'slides de "devis.pptx Pdevis.Slides.InsertFromFile "C:\DEVIS\devis.pptx", Pdevis.Slides.Count, 1, -1 Pdevis.Save 'AJOUT DES AGREMENTS : '===================== 'on ouvre la présentation "Agréments.pptx" Set PAgr = Ppa.Presentations.Open(Filename:="C:\DEVIS\Agrements.pptx") Pdevis.Slides.InsertFromFile "C:\DEVIS\Agrements.pptx", Pdevis.Slides.Count, 1, -1 Pdevis.Save PAgr.Close 'on l'ajoute à la suite de "NewDevis" 'AJOUT DES CONDITIONS GENERALES DE VENTE : '========================================= Set PCGV = Ppa.Presentations.Open(Filename:="C:\DEVIS\CGVentes.pptx") Pdevis.Slides.InsertFromFile "C:\DEVIS\CGVentes.pptx", Pdevis.Slides.Count, 1, -1 Pdevis.Save 'As Filename:=ThisWorkbook.Path & "\" & "NewDevisFin.pptx" 'on ferme la présentation "CGVentes.pptx" PCGV.Close End If 'FIN DU PROGRAMME SUITE 1 '************************************************************************************** 'on ajoute les pages de titres pour scénario + playlists Set PScenario = Ppa.Presentations.Open(Filename:="C:\DEVIS\ScenarioPlaylist.pptx") Pdevis.Slides.InsertFromFile "C:\DEVIS\ScenarioPlaylist.pptx", Pdevis.Slides.Count, 1, -1 Pdevis.Save PScenario.Close 'on ajoute la playlist en fonction du n° de devis : If Range("M2") = "N°1" Or Range("M2") = "1 - CAL" Then Set PPlaylist = Ppa.Presentations.Open(Filename:="C:\DEVIS\Playlist\Playlist1.pptx") Pdevis.Slides.InsertFromFile "C:\DEVIS\Playlist\Playlist1.pptx", Pdevis.Slides.Count, 1, -1 ElseIf Range("M2") = "N°2" Or Range("M2") = "2 - CAL" Then Set PPlaylist = Ppa.Presentations.Open(Filename:="C:\DEVIS\Playlist\Playlist2.pptx") Pdevis.Slides.InsertFromFile "C:\DEVIS\Playlist\Playlist2.pptx", Pdevis.Slides.Count, 1, -1 ElseIf Range("M2") = "N°3" Or Range("M2") = "3 - CAL" Then Set PPlaylist = Ppa.Presentations.Open(Filename:="C:\DEVIS\Playlist\Playlist3.pptx") Pdevis.Slides.InsertFromFile "C:\DEVIS\Playlist\Playlist3.pptx", Pdevis.Slides.Count, 1, -1 ElseIf Range("M2") = "N°4" Or Range("M2") = "4 - CAL" Then Set PPlaylist = Ppa.Presentations.Open(Filename:="C:\DEVIS\Playlist\Playlist4.pptx") Pdevis.Slides.InsertFromFile "C:\DEVIS\Playlist\Playlist4.pptx", Pdevis.Slides.Count, 1, -1 Pdevis.Save End If PPlaylist.Close 'AJOUT DU DEVIS : '================ 'on ajoute la présentation "devis" après le dernier slide de "ScenarioPlaylist.pptx" 'comme on ne connaît pas le nombre de slides composant les différentes présentations, on utilisera : Pdevis.Slides.Count, 'qui comptera le nbre de slides composant "NouveauDevis.pptm" puis 1 (1er slide de "devis.pptx" à (-1) pour insérer la totalité des 'slides de "devis.pptx Pdevis.Slides.InsertFromFile "C:\DEVIS\devis.pptx", Pdevis.Slides.Count, 1, -1 Pdevis.Save 'AJOUT DES AGREMENTS : '===================== 'on ouvre la présentation "Agréments.pptx" Set PAgr = Ppa.Presentations.Open(Filename:="C:\DEVIS\Agrements.pptx") Pdevis.Slides.InsertFromFile "C:\DEVIS\Agrements.pptx", Pdevis.Slides.Count, 1, -1 Pdevis.Save PAgr.Close 'on l'ajoute à la suite de "NewDevis" 'AJOUT DES CONDITIONS GENERALES DE VENTE : '========================================= Set PCGV = Ppa.Presentations.Open(Filename:="C:\DEVIS\CGVentes.pptx") Pdevis.Slides.InsertFromFile "C:\DEVIS\CGVentes.pptx", Pdevis.Slides.Count, 1, -1 Pdevis.Save 'on ferme la présentation "CGVentes.pptx" PCGV.Close '************************************************************************************************************************ Pdevis.Application.Activate 'lancement dans PPT du message de fin de traitement Ppa.Run "NouveauDevis.pptm!Message" MsgBox "le devis est maintenant terminé vous pouvez le vérifier et l'enregistrer dans C:\DEVIS" 'on garde la présentation "NouveauDevis.pptm" à l'écran pour vérification et impression depuis PPT End Sub ![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
PowerPoint 2007 Error | abhijitp | PowerPoint | 2 | 02-04-2013 11:02 AM |
Which ODF/ .odt version is word 2010, 2013 preview & eventually 2013 full using? | semiotically | Word | 8 | 11-08-2012 05:44 PM |
excel where is procedure being called from | davids67 | Excel Programming | 1 | 11-18-2011 06:48 AM |
Document selection procedure | kennethc | Word | 0 | 09-15-2010 02:56 PM |
Error: general mail failure. Quit excel restart mail system | MitchellDM | Outlook | 1 | 12-19-2008 02:05 AM |