Bonjour le Forum,
Je tente pour la première question (j'ai pas le temps d'ouvrir ton fichier) :
Dans ce fil, Lien supprimé, j'avais rencontré un problème similaire. Dans mon cas, je devais aligner trois
graphs dans une page ppt.
Michel avait fait une macro, et voici la même améliorée pour l'occasion pour éviter les problèmes de chemin :
Sub insertionGraphiqueDansPowerPoint_V02()
'necessite d'activer la reference Microsoft Powerpoint Object Library
Dim PPT As PowerPoint.Application
Dim PptDoc As PowerPoint.Presentation
Dim NbShpe As Byte, i As Byte
Dim EspaceH As Single, Largeur As Single, Hauteur As Single, posV As Single
Set PPT = CreateObject("Powerpoint.Application") 'creation session PowerPoint
PPT.Visible = True
Set PptDoc = PPT.Presentations.Open(ThisWorkbook.Path & "\Tableau0501.ppt") 'ouverture fichier ppt
Largeur = 350 'largeur shapes collé dans powerpoint
Hauteur = 300 'hauteur shapes collé dans powerpoint
EspaceH = (PptDoc.PageSetup.SlideWidth - (Largeur * 2)) / 3
posV = 50 'position verticale dans le slide
For i = 1 To 3 'boucle sur les 3 premiers graphiques de la feuille active
ActiveSheet.ChartObjects(i).Copy 'copie du Graphique
PptDoc.Slides(1).Shapes.Paste 'collage dans le Slide du document Power Point
'compte le nombre de shapes dans le slide
'le dernier objet inséré correspond à l'index le plus élevé
NbShpe = PptDoc.Slides(1).Shapes.Count
If i < 3 Then 'personnalisation des 2 premiers collages
With PptDoc.Slides(1).Shapes(NbShpe)
.Name = "monGraph" & i 'personnalise le nom de l'image inseree
.Left = EspaceH + ((Largeur + EspaceH) * (i - 1))
.Top = posV 'position verticale dans le slide
.Height = Hauteur 'hauteur image
.Width = Largeur 'largeur image
End With
Else 'personnalisation du 3eme collage
With PptDoc.Slides(1).Shapes(NbShpe)
.Name = "monGraph" & i 'personnalise le nom de l'image inseree
.Left = (PptDoc.PageSetup.SlideWidth - Largeur) / 2
.Top = Hauteur 'position verticale dans le slide
.Height = Hauteur 'hauteur image
.Width = Largeur 'largeur image
End With
End If
Next i
'PptDoc.Save 'sauvegarder les modification
'PptDoc.Close 'fermer le document
'PPT.Quit 'fer l'application powerPoint
End Sub
Il faut que les deux documents soient bien placés dans le même repertoire. Cette macro, à placer dans un module (Alt F11), fonctionne parfaitement sur XP; ne pas oublier de cocher aussi dans Références, tel que mentionné en haut de la procédure. Naturellement, il faut l'adapter à tes besoins :
nom du fichier à changer et nombres de graphiques dans un feuille excel à téléporter dans ppt.
Je rencontre néanmoins quelques difficultés avec mon pc bureau, et je suis en période intensive de tests!!! (excel 2000 - vraisemblablement à cause de ppt).
Celeda