Bonjour,
Je débute avec l'utilisation des objets powerpoint, et je galère un peu.
Ce que je veux faire : récupérer un powerpoint, l'ouvrir, rajouter une slide dans une certaine condition, sinon remplir un tableau.
Et c'est lors de la création de mon tableau je galère...
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
|
Dim PptApp As PowerPoint.Application 'pour lancer un ppt
Dim PptDoc As PowerPoint.Presentation
Dim pptLayout As Slide 'Gestion des slides
Dim Table As Table
Set PptApp = CreateObject("PowerPoint.Application")
PptApp.Visible = True
Set PptDoc = PptApp.Presentations.Open(Filename:=Rep & listfile(k))
'De 1 au nombre de shape de la dernière page
For m = 1 To PptDoc.Slides(PptDoc.Slides.Count).Shapes.Count
'Si sur la dernière slide il y a un tableau
If PptDoc.Slides(PptDoc.Slides.Count).Shapes.Item(m).HasTable Then
'On rajoute une ligne au tableau que l'on va remplir
Else 'Sinon
Set pptLayout = PptDoc.Slides.AddSlide(PptDoc.Slides.Count + 1, PptDoc.Slides(PptDoc.Slides.Count).CustomLayout) 'On rajoute une slide
Set Table = PptDoc.Slides(PptDoc.Slides.Count).Shapes.AddTable(2, 6) 'Et on y met un tableau
PptDoc.Slides(PptDoc.Slides.Count).Shapes(1).Table.Cell(1, 1).Shape.TextFrame.TextRange.Text = "Lettre Jaune"
End If
Next |
ça fonctionne pas trop mal, le soucis est : lors de la création de mon tableau j'ai un problème d'incompatibilité de type.
Pourtant mon objet Table est de type table.
J'ai aussi essayé :
Set Table = PptDoc.Slides(PptDoc.Slides.Count).Shapes.AddTable(2, 6).Table 'Et on y met un tableau
Mais les messages d'erreurs apparaissent tout de même ce qui interrompt le code. En revanche dans mon document Pptx tout se passe bien (la slide est bien ajoutée, le tableau est bien crée).
Je pense que ce n'est pas sorcier mais je craque : je tourne en rond !
Merci de votre aide, je suis assez inexpérimenté dans la manipulation des outils PPT
Partager