Bonjour
je viens vous voir parce que je perds la tête

je dois programmer une macro sous excel qui pilote powerpoint, et qui change les données sources du graphique intégré directement dans powerpoint

J'ai trouvé ce code à plusieurs endroit
le problème c'est que sur powerpoint 2007 on intègre plus un objet "OLEObject" mais un objet "chart"
donc forcement le code ne fonctionne pas ... il me dit que l'objet que je lui demande de sélectionner n'est pas un objet OLEObject (merci ça je le savais déjà grrrrr)

et comme les macros automatiques ne fonctionnent pas, je galère

vous avez une idée ???
merci d'avance
bonne journée à vous

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
Sub MAJ_graphiqueDansPresentation()
Dim appPPT As PowerPoint.Application
Dim Sh As PowerPoint.Shape
Dim Gr As Workbook
 
Set appPPT = CreateObject("PowerPoint.Application")
appPPT.Visible = msoTrue
appPPT.Presentations.Open "C:\maPresentation.ppt"
 
'Copie une plage de cellules dans la feuille active
'Ces données vont être collées dans le classeur incorporé, dans ppt, servant
'de source pour le graphique.
ActiveSheet.Range("A1:G10").Copy
 
'Le classeur incorporé est dans le 1er Slide
With appPPT.ActivePresentation.Slides(1)
    'Boucle sur les formes pour retrouver l'objet Excel
    For Each Sh In .Shapes
        'Verifié s'il s'agit d'un objet incorporé
        If Sh.Type = msoEmbeddedOLEObject Then
            'Vérifie s'il s'agit d'une feuille graphique
            If Sh.OLEFormat.progID = "Excel.Chart.8" Then
                Set Gr = Sh.OLEFormat.Object
                'Colle les données dans la Feuil1 du classeur incorporé
                'La feuil1 contient la source de données pour le graphique
                Gr.Sheets("Feuil1").Range("A1").PasteSpecial
                'réactive la première feuille du classeur incorporé
                '(Le graphique est situé dans ce 1er onglet)
                Gr.Sheets(1).Activate
            End If
        End If
    Next Sh
End With
End Sub