Problème de copie de tableau Excel dans Powerpoint avec VBA
Bonjour à tous,
Voilà, je suis entrain de faire une macro dans le but d'automatiser la création d'une présentation power point qui a lieu toutes les semaines.
Cette macro copie des tableaux excel (en format image) dans un power point à l'endroit souhaité.
Néanmoins, la macro me saute automatiquement la dernière colonne sur tout les slides ...
Je viens de me lancer sur excel et la macro est une résultante de copier-coller successifs...
Merci par avance à celles et ceux qui m’apporteront leur précieuse aide !
(Je m'excuse par avance si cette question a déjà été posée ou si je l'ai posté au mauvais endroit)
MRU08
Dim ppApp As PowerPoint.Application
Dim ppPres As PowerPoint.Presentation
Dim ppShape As PowerPoint.shape
Dim SlideNum As Integer
Dim strPresPath As String, strExcelFilePath As String, strNewPresPath As String
strPresPath = "C:\...."
strNewPresPath = "C:\...."
Set ppApp = CreateObject("PowerPoint.Application")
ppApp.Visible = msoTrue
Set ppPres = ppApp.Presentations.Open(strPresPath)
Sheets("Sheet1").Activate
Range("Tableau1").Copy
SlideNum = 8
ppPres.Slides(SlideNum).Select
Set ShR = ppPres.Slides(SlideNum).Shapes.PasteSpecial(ppPasteMetafilePicture, msoFalse)
With ShR
.Top = 52
.Left = 80
.Height = 200
.Width = 800
End With
End Sub
Bonjour,
A tester
Option Explicit
Public Sub test()
Dim ppApp As PowerPoint.Application
Dim ppPres As PowerPoint.Presentation
Dim PPSlide As PowerPoint.Slide
Dim SlideNum As Integer
Dim strPresPath As String, strExcelFilePath As String, strNewPresPath As String
Dim rng As Range
Application.ScreenUpdating = False
strPresPath = "C:\...."
strNewPresPath = "C:\...."
Set ppApp = CreateObject("PowerPoint.Application")
Set ppPres = ppApp.Presentations.Open(strPresPath)
ppApp.Visible = msoTrue
Set rng = Worksheets("Sheet1").Range("Tableau1")
rng.CopyPicture Appearance:=xlScreen, Format:=xlPicture
SlideNum = 8
Set PPSlide = ppPres.Slides(SlideNum)
ppPres.Slides(SlideNum).Select
PPSlide.Shapes.Paste.Select
ppApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
ppApp.ActiveWindow.Selection.ShapeRange.Top = 52
ppApp.Activate
Set PPSlide = Nothing
Set ppPres = Nothing
Set ppApp = Nothing
End Sub
Merci pour ta réponse !
Je vais tester lundi et je reviens vers toi
MRU08
Bonjour Jean-Eric,
Je viens de tester et j'ai deux souci maintenant :S
1) la taille du tableau ne correspond plus à ce que je souhaite
2) Etant donné que j'ai plusieurs tableau à copier sur différents slides, j'ai recopié le code en adaptant (changer le numéro de slide, le tableau à recopier et l'onglet sur lequel il se trouve), malheureusement, la macro se bloque lors de la copie du 2ème tableau ici :
' Collage du tableau n3 :
SlideNum = 3
Set ppSlide = ppPres.Slides(SlideNum)
ppPres.Slides(SlideNum).Select
ppSlide.Shapes.Paste.Select
Sur Set ppSlide = ppPres.Slides(SlideNum)....
Merci de ton aide
MRU08
Bonjour,
Que veux-tu que je fasse?
Même avec des fichiers joints, je ne suis pas certain de pouvoir t'aider plus.
Il y a certainement un forum traitant de PowerPoint et VBA.
Cdlt.