Lancer une macro powerpoint avec Argument depuis Excel

Résolu
GuillaumeCCF Messages postés 4 Date d'inscription jeudi 17 juin 2010 Statut Membre Dernière intervention 10 août 2011 - 17 juin 2010 à 18:06
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

3 réponses

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
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)
3
cs_Le Pivert Messages postés 7899 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 21 septembre 2023 137
17 juin 2010 à 18:35
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
@+
0
cs_Le Pivert Messages postés 7899 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 21 septembre 2023 137
17 juin 2010 à 18:38
j'ai oublié cette déclaration

Dim Sh As PowerPoint.Shape
0
Rejoignez-nous