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 : 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
Code utilisé en base:


Merci d'avance pour votre aide