Bonjour,

J'ai un fichier excel comportant un bon nombre de graphiques et tableaux. Ces graphiques sont générés par des macros et doivent etre ensuite copier/coller sur une presentation powerpoint.
J'ai pensé à effectuer des copier/coller avec liaisons sur mon powerpoint mais l'image rendue est de qualité médiocre... C'est donc pourquoi j'ai décidé d'effectuer une macro basique (étant donné mon faible niveau en VBA). Mon soucis est qu'une fois les copier/coller effectués, je vais manipuler cette macro tous les mois sur la meme presentation et les graphiques vont donc s'empiler les uns sur les autres ce qui va rendre le fichier assez lourd. J'ai trouvé sur un forum la fonction adéquate pour supprimer un graphique sur Powerpoint mais elle ne trouve pas forcément le graphique en question. Voila la macro en question :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Sub PwP()
 
'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
Set PptDoc = PPT.Presentations.Open("...") 'ouverture fichier ppt
 
NbShpe = PptDoc.Slides(4).Shapes.Count
 
PptDoc.Slides(4).Shapes("Graphique 1").Delete
 
Sheets("Sheet1").Select
    ActiveSheet.ChartObjects("Graphique 1").Activate
    ActiveChart.ChartArea.Select
    ActiveChart.ChartArea.Copy
 
PptDoc.Slides(4).Shapes.Paste  'collage dans le Slide3 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(4).Shapes.Count
 
With PptDoc.Slides(4).Shapes(NbShpe)
.Name = "Graphique 4" 'personnaliser le nom de l'image insérée
.Left = 150 'position horizontale dans le slide
.Top = 100 'position verticale dans le slide
.Height = 300 'hauteur image
.Width = 400 'largeur image
End With
 
End Sub
Mon soucis se trouve donc au niveau de la suppression des graphiques. Je ne sais pas s'il existe une solution plus simple c'est donc pourquoi je sollicite votre aide.

Merci d'avance