View Single Post
 
Old 02-26-2013, 10:25 AM
fidecourt fidecourt is offline Windows 7 64bit Office 2013
Novice
 
Join Date: Feb 2013
Location: Paris - France
Posts: 2
fidecourt is on a distinguished road
Default

Thanks John for your answer.

I did the code modifications in order to avoid the opening and closing problem.

but I work all the day on my programs, but I always have the POWERPOINT failure when I did the previous macros

the problem is that they never stop at the same place, so it is very difficult to understand what happens

when I did the different macro, one by one, everything is correct, no problem, but when I run the compilation, the problem appears time to time, it's to say that sometimes, it runs correctly until the end...

herebelow the code :

Code:
Private Sub CmdButLancerPPT_Click() 'GENERER LE PPT COMPLET
If OptButDistSecuOui = True Then
PPTEntete.Entete
CreaSlidesDevisSautPage.PPTDevis
PPTRecapProdCal.PPTRecapProdCalibre
PPTCouleurs.PPTCouleurs
AgrSautPage.PPTlisteAgrSautPage
AssemblagePPT.ConcatenerPresentations
End If
If OptButDistSecuNON = True Then
PPTEntete.Entete
CreaSlidesDevisSautPage.PPTDevis
PPTRecapProdCal.PPTRecapProdCalibre
AgrSautPageSansDist.PPTlisteAgr2
AssemblagePPT.ConcatenerPresentations
End If
End Sub
=======================================
and the code of the following modified with your help :
Code:
Sub ConcatenerPresentations()
Dim Ppa As PowerPoint.Application
Dim Pdevis As PowerPoint.Presentation
 
Set Ppa = New PowerPoint.Application
Ppa.Visible = True
'ouverture de la présentation d'accueil contenant la macro PPT du message de fin d'exécution
Set Pdevis = Ppa.Presentations.Open(Filename:="C:\DEVIS\NewDevis.pptm")
'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"
 
'2 - insertion du PPT Présentation SDF :
'=========================================================================================
Pdevis.Slides.InsertFromFile "C:\DEVIS\DevisSte.pptx", Pdevis.Slides.Count, 1, -1
'sauvegarde du devis PPT
Pdevis.Save
 
'3 - insertion du récapitulatif des produits par calibre
'=========================================================================================
Pdevis.Slides.InsertFromFile "C:\DEVIS\RecapProdCal.pptx", Pdevis.Slides.Count, 1, -1
Pdevis.Save
'on l'ajoute à la suite de "NouveauDevis.pptm"
 
'4 - insertion du graphique des couleurs du devis
'=========================================================================================
Pdevis.Slides.InsertFromFile "C:\DEVIS\CouleursDevis.pptx", Pdevis.Slides.Count, 1, -1
Pdevis.Save
'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
 With Sheets("feux")
        Range("M2").Select
        If Range("M2") = "COMPO" Then
        GoTo suite1
 
 
'DEBUT PROGRAMME SUITE 1 :
'**************************************************************************************
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 :
    '=====================
Pdevis.Slides.InsertFromFile "C:\DEVIS\Agrements.pptx", Pdevis.Slides.Count, 1, -1
Pdevis.Save
    'AJOUT DES CONDITIONS GENERALES DE VENTE :
    '=========================================
Pdevis.Slides.InsertFromFile "C:\DEVIS\CGVentes.pptx", Pdevis.Slides.Count, 1, -1
Pdevis.Save 'As Filename:=ThisWorkbook.Path & "\" & "NewDevisFin.pptx"
End If
'FIN DU PROGRAMME SUITE 1
'**************************************************************************************
 
'on ajoute les pages de titres pour scénario + playlists
Pdevis.Slides.InsertFromFile "C:\DEVIS\ScenarioPlaylist.pptx", Pdevis.Slides.Count, 1, -1
Pdevis.Save
'on ajoute la playlist en fonction du n° de devis :
If Range("M2") = "N°1" Or Range("M2") = "1 - CAL" Then
Pdevis.Slides.InsertFromFile "C:\DEVIS\Playlist\Playlist1.pptx", Pdevis.Slides.Count, 1, -1
ElseIf Range("M2") = "N°2" Or Range("M2") = "2 - CAL" Then
Pdevis.Slides.InsertFromFile "C:\DEVIS\Playlist\Playlist2.pptx", Pdevis.Slides.Count, 1, -1
ElseIf Range("M2") = "N°3" Or Range("M2") = "3 - CAL" Then
Pdevis.Slides.InsertFromFile "C:\DEVIS\Playlist\Playlist3.pptx", Pdevis.Slides.Count, 1, -1
ElseIf Range("M2") = "N°4" Or Range("M2") = "4 - CAL" Then
Pdevis.Slides.InsertFromFile "C:\DEVIS\Playlist\Playlist4.pptx", Pdevis.Slides.Count, 1, -1
Pdevis.Save
End If
End With
    '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"
Pdevis.Slides.InsertFromFile "C:\DEVIS\Agrements.pptx", Pdevis.Slides.Count, 1, -1
Pdevis.Save
    'AJOUT DES CONDITIONS GENERALES DE VENTE :
    '=========================================
Pdevis.Slides.InsertFromFile "C:\DEVIS\CGVentes.pptx", Pdevis.Slides.Count, 1, -1
Pdevis.Save
 
'************************************************************************************************************************
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
================================================== ======

I don't know if it is possible before launching the first compilation program to verify if POWERPOINT has a file in instance, and if it is true, to close this or these files before beginning the program ?

It is very desappointing because with OFFICE 2010, I never have this problem

Is that due to a too important running speed ?

hope my english is clear enough to be understood !

thanks for your help and idea !
Reply With Quote