Lancer une macro powerpoint avec Argument depuis Excel [Résolu]

Messages postés
4
Date d'inscription
jeudi 17 juin 2010
Statut
Membre
Dernière intervention
10 août 2011
- - Dernière réponse : GuillaumeCCF
Messages postés
4
Date d'inscription
jeudi 17 juin 2010
Statut
Membre
Dernière intervention
10 août 2011
- 18 juin 2010 à 18:15
Bonjour à tous,

Première fois que je ne trouve pas la réponse à une question que je me pose en VB, alors je me lance sur le Forum.

Je suis sur Excel, dans une macro qui doit lancer une autre macro, elle sur Powerpoint :
ppt.Run "'presentation.ppt'!image"


Avec ce code pas de problème ma macro powerpoint fonctionne (en gros elle importe une image)

Mon problème est que je voudrais qu'elle importe une image bien précise, dont je lui aurait donné le nom en Argument. Donc j'ai modifié ma macro ppt en private sub(nom_image as string) et je partais sur un code du style :
ppt.Run "'presentation.ppt'!image(nom_image)"


Mais j'ai une message d'erreur sur cette ligne, j'avais déjà eu des messages d'erreur a propos de version d'Excel et Ppt, que j'ai résolu, donc ça doit être un autre problème, surement ma façon de faire passer l'argument à ma macro powerpoint...

Je vous remercie d'avance de l'aide que vous pourrez m'apporter
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
4
Date d'inscription
jeudi 17 juin 2010
Statut
Membre
Dernière intervention
10 août 2011
3
Merci
Merci Le Pivert mais j'ai trouvé une autre solution, qui n'était en fait pas sorcière !!

En fait il faut écrire l'argument après une virgule, à la suite :
ppt.Run "'presentation.ppt'!image", nom_image


et dans la macro dans le fichier powerpoint déclarer:
Public sub image (nom_image as string)

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de GuillaumeCCF
Messages postés
6276
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 octobre 2019
87
0
Merci
Bonjour,
j'ai fait cela vite fait à ma manière et cela fonctionne:
Necessite le référence 'Microsoft PowerPoint 11.0 Object Library
Voici le code qui crée une présentation, insére une image centrée et enregistre la présentation dans le dossier Excel:
Sub Inserer_Image()
Dim PptDoc As PowerPoint.Presentation
Dim PptApp As Variant
Set PptApp = CreateObject("Powerpoint.Application")
Set PptDoc = PptApp.Presentations.Add

With PptDoc

'--- Ajoute un Slide
.Slides.Add Index:=1, Layout:=ppLayoutBlank
Set Sh = .Slides(1).Shapes.AddPicture(FileName:="Chemin du fichier image", LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=148, Top:=165, Width:=425, Height:=211)'insere l'image au centre
'Sauvegarde la présentation
'dans le même répertoire que le classeur excel contenant la macro.
PptDoc.SaveAs FileName:=ThisWorkbook.Path & "" & "NouvellePresentation.ppt"
'ferme la presentation
PptDoc.Close
'ferme powerpoint
PptApp.Quit

MsgBox "Opération terminée."
End With

End Sub

A vous de la modifier suivant vos besoins
@+
Commenter la réponse de cs_Le Pivert
Messages postés
6276
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 octobre 2019
87
0
Merci
j'ai oublié cette déclaration

Dim Sh As PowerPoint.Shape
Commenter la réponse de cs_Le Pivert