Bonjour,

Dans un Worksheet, j'ai créé 2 graphiques, et je les groupe.
Je souhaite coller le shape groupé dans un gaph pour exporter l'image du Graph.
=> le but : avoir une image des 2 graphs groupés.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
        Dim XL_Shape As Excel.Shape
        Dim XL_Shape_Grp As Excel.Shape
        Dim XL_Shape_Array As Object()
 
        'Grouper les 2 Graphiques
        ReDim XL_Shape_Array(XL_WS.Shapes.Count - 1)
        For Each XL_Shape In XL_WS.Shapes
            XL_Shape_Array(i) = XL_Shape.Name
            i = i + 1
        Next
        XL_Shape_Grp = XL_WS.Shapes.Range(XL_Shape_Array).Group()
        XL_Shape_Grp.Name = "Graph_Grp"
        XL_Shape_Grp.Copy()
Tout ça fonctionne, sur l'onglet, les 2 graphs sont bien groupés un seul shape.

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
        'créer image
        G_Image = My.Settings.Cible1 & "\Admin\" & "Graph_2.gif"
 
        XL_Chart_Obj = XL_Charts_Obj.Add(0, 0, XL_Shape_Grp.Width, XL_Shape_Grp.Height)
        XL_Chart = XL_Chart_Obj.Chart
        XL_Chart.Location(Excel.XlChartLocation.xlLocationAsObject, XL_WS.Name)
        With XL_Chart
            .ChartArea.Select()
            .Paste()
            .ChartArea.Border.LineStyle = 0
            On Error Resume Next
            XL_Chart.Activate()
            .Export(Filename:=G_Image, FilterName:="GIF")
            On Error GoTo 0
        End With
Le graph est ben créé, l'image est bien générée sauf que les 2 sont blancs. (je précise que le Graph créé et l'image enregistré sont bien à la bonne taille du shape)

je pense que le .paste dans le .ChartArea.Select() ne fonctionne pas.
Le code ne génère pas d'erreur.

Est-ce que quelqu'un sait comment coller un shape dans un ChartArea?
(je précise, ça vaut ce que ça vaut , que je fais cette technique sur VBA et que cela fonctionne parfaitement).

D'avance merci pour votre aide, car depuis 2j je deviens dingue