VBA PowerPoint : copier coller plusieurs diapos

Bonjour à tous,

J'ai fais des recherches sur internet, et j'ai trouvé un code qui permet de copier des diapos d'un fichier powerpoint fermée via vb dans une nouvelle présentation. pile poil ce que je cherchais. Et c'est une bonne nouvelle que ce soit possible.

Seulement, je n'ai pas réussi à le faire fonctionner (vous comprendrer l'échec personnel que j'ai subit quand la fênetre "debogage" n'a pas cessé d'apparaitre.... dur..... très dur.... surtout quand on a le code....).

Voilà le code :

Sub piloterPowerPoint()
Dim Ppa As PowerPoint.Application
Dim Ppp1 As PowerPoint.Presentation

Set Ppa = New PowerPoint.Application
Ppa.Visible = True
'Ouverture présentation
Set Ppp1 = Ppa.Presentations.Open(Filename:="C:\maPresentation1.ppt")

'expression.InsertFromFile(CheminPresentationSource, Index, SlideDebut, SlideFin)
'---------------------------------------------------------------
'Cet exemple montre comment insérer les diapositives 1 à 4 provenant
'de "PresentationSource.ppt" à la suite de la diapositive 2, dans
'la présentation "maPresentation1.ppt".
Ppp1.Slides.InsertFromFile "C:\PresentationSource.ppt", 2, 1, 4
End Sub
 

Je vous joint le fichier powerpoint, peut être vous pourrez me dire pourquoi ça ne fonctionne pas, à mon avis c'est au niveau du chemin que ça ne marche pas : il faut mettre un chemin relatif ? absolu ? en suposant que le fichier "source" et le fichier qui est "crée" soient contenus dans le même fichier que le fichier ou se trouve le code.

Aidez moi...... please...

Merci !

152essai.pptm (39.99 Ko)

Salut le forum

ElectricDandy, en ajoutant le répertoire courant au nom du fichier avec ActivePresentation.Path

FileName:=ActivePresentation.Path & "\maPresentation1.pptx"

Mytå

Merci pour la réponse.

J'ai du me tromper la première fois car j'ai retapé le code, et là ça marche.

 Sub InsereDiapositives()
 Dim pptDoc As Presentation

 Set pptDoc = Application.Presentations.Open(FileName:="D:\Documents and Settings\****\Desktop\powerpoint\maPresentation1.pptx")
 pptDoc.Slides.InsertFromFile "D:\Documents and Settings\****\Desktop\powerpoint\E2G0L03.pptx", 0, 1, 1

End Sub

Seulement, j'ai encore un souci : la mise en forme du texte est conservée, seulement, la couleur de l'arrière plan ne suit pas (ou alors le modèle de présentation). Si mon texte est blanc sur fond bleu, avec ce code que j'ai, quand la diapo se colle, le texte est bien blanc, mais le fond est blanc : du coup on voit rien.

Est il possible de faire un "collage spécial" comme le propose Powerpoint quand on copie colle manuellement et qui conserve la mise en forme ? Ou alors est il possible d'insérer des slides en PDF (slides préalablement enregistré en PDF), comme ça la mise en forme est conservé. J'ai essayé, echec !

En fait, le but est de réaliser des présentations générées "automatiquement" en cochant des options : si cette case est cochée, alors on colle ces diapos là, et ainsi de suite....

Et comme ça, mes présentations pourront être faite plus rapidement.

J'utilse un "InsertFromFile", est ce qu'il existe pas un truc du genre "copiage spécial du fichier...." ?

Merci

Rechercher des sujets similaires à "vba powerpoint copier coller diapos"