Problème Macro Excel Powerpoint Graphique
Bonjour à tous !
Dans le contexte de mon stage, je dois effectuer une macro Excel Powerpoint me permetant de copier coller sous VBA mes graphiques Excel sous une présentation PowerPoint. Etant donné que je suis loin d'etre un expert sous VBA, je suis arrivé a concevoir une Macro mais je rencontre plusieurs soucis:
1) Tout d'abord, vu le nombre de graphiques, ma macro ne retrouve pas tout le temps les bons graphiques. Je voudrais donc savoir s'il y a un autre moyen pour séléctionner parfaitement les graphiques.
2) De plus, etant donné que ma macro ne créé pas une nouvelle présentation Powerpoint mais utilise toujours la meme, les graphiques s'empilent et je ne sais donc pas comment supprimer mes anciens graphiques pour les remplacer par les nouveaux.
Voici la macro en qustion:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| Sub Copie()
'necessite d'activer la reference Microsoft Powerpoint Object Library
Dim PPT As PowerPoint.Application
Dim PptDoc As PowerPoint.Presentation
Dim NbShpe As Byte
Set PPT = CreateObject("Powerpoint.Application") 'creation session PowerPoint
PPT.Visible = True 'l'application sera visible
Set PptDoc = PPT.Presentations.Open("P:\CAAM London Branch\Front Office\Product Specialists London Branch\Tools\Projet Graph\Présentation1.pptx") 'ouverture fichier ppt
'copie du graphique nommé,contenu dans la feuille active
Sheets(1).ChartObjects("Graphique 1").Copy
PptDoc.Slides(1).Shapes.Paste 'collage dans le Slide5 du document Power Point
Sheets(2).ChartObjects("Graphique 1").Copy
PptDoc.Slides(2).Shapes.Paste 'collage dans le Slide5 du document Power Point
Sheets(2).ChartObjects("Graphique 2").Copy
PptDoc.Slides(3).Shapes.Paste 'collage dans le Slide5 du document Power Point
'compte le nombre de shapes dans le 3eme slide
'le dernier objet inséré correspond à l'index le plus élevé
NbShpe = PptDoc.Slides(1).Shapes.Count
With PptDoc.Slides(1).Shapes(NbShpe)
.Name = "monGraph" 'personnaliser le nom de l'image insérée
.Left = 70 'position horizontale dans le slide
.Top = 70 'position verticale dans le slide
.Height = 5 'hauteur image
.Width = 5 'largeur image
End With
'compte le nombre de shapes dans le 3eme slide
'le dernier objet inséré correspond à l'index le plus élevé
NbShpe = PptDoc.Slides(2).Shapes.Count
With PptDoc.Slides(2).Shapes(NbShpe)
.Name = "monGraph" 'personnaliser le nom de l'image insérée
.Left = 60 'position horizontale dans le slide
.Top = 85 'position verticale dans le slide
.Height = 400 'hauteur image
.Width = 600 'largeur image
End With
'compte le nombre de shapes dans le 3eme slide
'le dernier objet inséré correspond à l'index le plus élevé
NbShpe = PptDoc.Slides(3).Shapes.Count
With PptDoc.Slides(3).Shapes(NbShpe)
.Name = "monGraph" 'personnaliser le nom de l'image insérée
.Left = 60 'position horizontale dans le slide
.Top = 85 'position verticale dans le slide
.Height = 400 'hauteur image
.Width = 600 'largeur image
End With
PptDoc.Save '
PptDoc.Close '
PPT.Quit '
End Sub |
Merci de votre aide