Bonjour à tous.
Voila mon souci. Je dois créer une présentation powerpoint depuis des données contenues dans un classeur Excel. J'arrive à créer un code qui génère un fichier .pps (j'ai utilisé l'aide qui propose le code de base pour créer ce type de fichier).
Néanmoins, j'aimerai qu'à l'issue de la création de ce fichier et de sa sauvegarde), la présentation soit directement éxécutée sans passer par l'interface classique Powerpoint. (C'est d'ailleurs pour cela que j'ai enregistré en .pps).
Le problème est qu'avec le code utilisé, la présentation ne se lance pas et je ne comprends pas pourquoi
En bref, j'ai un ficher .pps que je cherche à lancer à l'aide d'une maccro Excel.
J'ai tenté plusieurs choses mais ça ne veut pas.
Code utilisé en base:
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
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 Sub NouvellePresentation() Dim PptApp As PowerPoint.Application Dim PptDoc As PowerPoint.Presentation Dim Diapo As PowerPoint.Slide Dim Sh As PowerPoint.Shape Dim Cs1 As ColorScheme Dim NbShpe As Integer Set PptApp = CreateObject("Powerpoint.Application") Set PptDoc = PptApp.Presentations.Add With PptDoc '--- Ajoute un Slide .Slides.Add Index:=1, Layout:=ppLayoutBlank 'Crée une zone de texte (AddLabel) Set Sh = .Slides(1).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _ Left:=100, Top:=100, Width:=150, Height:=60) 'insère la valeur de la Cellule A1 dans une zone de texte Sh.TextFrame.TextRange.Text = Range("A1") 'Modifie la couleur du texte Sh.TextFrame.TextRange.Font.Color = RGB(255, 100, 255) '--- Ajoute un nouveau slide et le positionner en 2eme position Set Diapo = .Slides.Add(Index:=2, Layout:=ppLayoutBlank) 'copie le 1er graphique contenu dans la feuille Excel active ActiveSheet.ChartObjects(1).Copy 'collage dans la 2eme diapositive Diapo.Shapes.Paste 'Compte le nombre de shapes dans la diapositive: 'le dernier objet inséré correspond à l'index le plus élevé NbShpe = Diapo.Shapes.Count 'Renomme et met en forme l'objet collé With Diapo.Shapes(NbShpe) .Name = "monGraph" 'personnalise le nom .Left = 150 'définit la position horizontale dans le slide .Top = 100 'définit la position verticale dans le slide .Height = 300 'hauteur .Width = 400 'largeur End With '--- Modifie la couleur de fond dans les différents Slides Set Cs1 = .ColorSchemes(3) Cs1.Colors(ppBackground).RGB = RGB(225, 233, 200) .SlideMaster.ColorScheme = Cs1 End With 'Sauvegarde la présentation 'dans le meme répertoire que le classeur excel contenant la macro. PptDoc.SaveAs Filename:=ThisWorkbook.Path & "\" & "NouvellePresentation.ppt" 'ferme la presentation PptDoc.Close 'ferme powerpoint PptApp.Quit MsgBox "Opération terminée." End Sub
Merci d'avance pour votre aide
Partager