XL 2013 Combiner 1 graphique et 1 photo et les exporter

  • Initiateur de la discussion Initiateur de la discussion erics83
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

erics83

XLDnaute Impliqué
Bonjour,

J'ai un classeur. Dans ce classeur j'ai 1 graphique et 1 photo. J'aimerai les combiner et pouvoir les exporter.....
En effet, j'ai un code qui exporte bien le graphique,
Code:
Set MyChart = ActiveSheet.ChartObjects(1).Chart
MyChart.Export Filename:=ThisWorkbook.Path & "\Images\" & Feuil1.Range("B1") & n & ".jpg", filtername:="JPG"
mais QUE le graphique, c'est pourquoi il faut que je combine les 2....j'ai essayé en les groupant, mais cela ne fonctionne pas...ou alors, j'ai mal écrit l'instruction...j'ai essayé
Code:
Set MyChart = ActiveSheet.ChartObjects(1).Chart
Set MyChart = ActiveSheet.group(1).picture
mais cela ne fonctionne pas....
J'ai aussi essayé :
VB:
ActiveSheet.Shapes.Range(Array("Picture 4", "Chart 1")).Copy 'en utilisant l'enregistreur VBA
Set MyChart = Selection
MyChart.Export Filename:=ThisWorkbook.Path & "\Images\" & Feuil1.Range("B1") & n & ".jpg", filtername:="JPG"

Ca doit être "tout simple"...mais je ne trouve pas....

Merci pour votre aide,
 
Bonsoir,
Vous pouvez vous inspirer de ce bout de code :
VB:
Sub test()
Application.ScreenUpdating = False
    Shapes.Range(Array("Picture 1", "Chart 1")).Select
    Selection.CopyPicture
    ChartObjects.Add(0, 0, Selection.ShapeRange.Width, Selection.ShapeRange.Height).Select
    With ActiveChart
        .Paste
        .Export Filename:=ThisWorkbook.Path & "\Images\" & Feuil1.Range("B1") & n & ".jpg", filtername:="JPG"
        .Parent.Delete
    End With
End Sub
 
Top Merci fanch55,

J'avais vu ce code sue le net, mais j'espérai ne pas devoir créer un fichier temporaire et donc j'ai essayé via un groupement...mais apparemment c'est la seule solution....
Donc MERCI.

J'ai adapté et modifié quelques lignes (surtout concernant le format/taille de l'image : il fallait que la taille soit celle du graphique, donc j'ai fait :
VB:
Sub ExtractionImagesFeuille()
    Dim Pict As Picture
    Dim Nb As Byte
    Dim ChartObj As ChartObject
l = ActiveSheet.ChartObjects("Chart 1").Width
h = ActiveSheet.ChartObjects("Chart 1").Height

    ActiveSheet.Shapes.Range(Array("Chart 1", "Picture 4")).Select
    Selection.CopyPicture
      
            Set ChartObj = ActiveSheet.ChartObjects.Add(0, 0, l, h)
            
            ChartObj.Activate
            ChartObj.Chart.Paste 'colle l'image dans un graphique temporaire
            ChartObj.Chart.Export Filename:=ThisWorkbook.Path & "\Images\" & Feuil1.Range("B1") & n & ".jpg", filtername:="JPG"
        Nb = ActiveSheet.ChartObjects.Count
        ActiveSheet.ChartObjects(Nb).Delete 'Supprime le graphique
  


End Sub
Merci,
Eric
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour