Bonjour,
J'aimerais copier/coller un titre (ou zone de texte) dans un powerpoint, à partir d'une fonction dans excel, d'une diapo à l'autre (de Diapo1 à Diapo2).
Je m'explique : je crée automatiquement des graphes, que je copie colle dans un powerpoint. Ce dernier est déjà mis en page (image de fond, titre ...) et sur la Diapo1 (qui correspond à l'index 2), il y a une zone de texte. J'ajoute une diapo (Diapo2), et j'aimerais copier coller cette zone de texte...
mon code :
Code :
- Public Function ppt()
- Dim ppapp As PowerPoint.Application
- Dim Pres As PowerPoint.Presentation
- Dim Diapo1 As PowerPoint.Slide
- Dim Diapo2 As PowerPoint.Slide
- Dim handle As Long
- Dim nomFichier As String
-
- handle = 0
- 'On ouvre le powerpoint
- Set ppapp = CreateObject("PowerPoint.Application" )
-
-
-
- ' Et on lui dit de quelle présentation il s'agit :
- nomFichier = OuvrirUnFichier(handle, "Sélectionner le masque", 1, "Microsoft Powerpoint", "ppt" )
-
- ppapp.Visible = True ' Indispensable, sinon il ne peut pas ouvrir de fichier (Erreur)
-
- Set Pres = ppapp.Presentations.Open(nomFichier)
- ppapp.Activate
-
- 'Avec la présentation créée
- With Pres
-
- 'on dit que la 2ème diapo a pour nom Diapo1
- Set Diapo1 = .Slides(2)
-
- 'on ajoute une diapositive
- Set Diapo2 = .Slides.Add(Index:=3, Layout:=ppLayoutBlank)
- 'On copie/colle la zone de texte
- '...
-
- ' Copie du graphe excel
- Workbooks("Comparaison.xls" ).Sheets("Comparaison de la taille" ).Activate
- ActiveSheet.ChartArea.Select
- ActiveSheet.ChartArea.Copy
- ' On colle le graphe dans la présentation et on le redimensionne
- Set Shape1 = Diapo1.Shapes.Paste
- Shape1.Top = 40
- Shape1.Left = 20
- Shape1.Width = 430
- Shape1.Height = 430
-
- ' Copie du graphe excel
- Workbooks("Comparaison.xls" ).Sheets("Evolution de la taille" ).Activate
- ActiveSheet.ChartArea.Select
- ActiveSheet.ChartArea.Copy
- ' On colle le graphe dans la présentation et on le redimensionne
- Set Shape2 = Diapo2.Shapes.Paste
- Shape2.Top = 40
- Shape2.Left = 20
- Shape2.Width = 430
- Shape2.Height = 430
-
- End With
-
- ppapp.Activate
-
- End Function
|
J'ai essayé en enregistrant une macro, mais cela ne fonctionne pas...
quelque chose dans le genre :
Code :
- Diapo1.activate
- Diapo1.select("rectangle 2" )
- selection.copy
- Diapo2.activate
- Diapo2.shapes.paste
|
merci à ceux qui me répondront
Message édité par minimoack le 30-01-2013 à 09:08:50