comment sauvegarde une shape en fichier image

jf27

XLDnaute Occasionnel
bjr le forum,

je souhaite transformer une shape en fichier jpeg.
En sauvegardant cette shape en jpeg.
Code:
Set shp = Sheets("file").Shapes("car1")
    'save shp in temp.jpg
   Me.car1.Picture = LoadPicture(Mid(temp, 2, 200))
Quelqu'un sait il comment faire ca ?

merci par avance
@+
jf27
 

kjin

XLDnaute Barbatruc
Re : comment sauvegarde une shape en fichier image

Bonjour,
Il faut auparavant copier ta forme (shape) dans un graphique puis exporter ce dernier
Code:
Sub ExportImage()
    Set Co = ActiveSheet.ChartObjects.Add(50, 50, 200, 200)  'dimensions à adapter
    ActiveSheet.Shapes("Car1").Copy
    With Co.Chart
        .Paste
        .Export Filename:=ActiveWorkbook.Path & "\Car1.jpg" 'ici sauvegarde dans le répertoire du classeur actif
    End With
        Co.Delete

End Sub
A+
kjin
 

jf27

XLDnaute Occasionnel
Re : comment sauvegarde une shape en fichier image

Code:
Bjr Kjin,


Merci de ta réponse cela fonctionne correctemment !

Il me reste 2 soucis:

- comment faire pour que la taille de l'image créée soit la même que celle de la shape ? Puis je récupérer les propriétés du shape et les affecter au graph,
un truc du genre shape/width,shep.left,shape.topshape.height
voir mon code. Mais la syntaxe n'est pas correcte

- je souhaite ensuite affecter cette image à un picture dans mon userform initialize. voir mon code, je n'ai pas d'erreur générée mais l'image n'est pas copiée dans l'userform...
Code:
   Set shp = Sheets("file").Shapes("car1"
        Set co = ActiveSheet.ChartObjects.Add(shp.Left, shp.Top, shp.Height, shp.Width) 'dimensions à adapter
    shp.Copy
    With co.Chart
        .Paste
        .Export Filename:=ActiveWorkbook.Path & "\temp.jpg" 'ici sauvegarde dans le répertoire du classeur actif
    End With
        co.Delete
        Me.car1.Picture = LoadPicture(Mid(ActiveWorkbook.Path & "\temp.jpg", 2, 200))

@+
jf27
 

kjin

XLDnaute Barbatruc
Re : comment sauvegarde une shape en fichier image

Bonsoir,
Tu ne précises pas si l'image est créée lors du chargement du formulaire ou si les 2 procédures sont indépendantes, donc j'ai opté pour la première possibilité
Dans le module du formulaire
Code:
Private Sub UserForm_Initialize()
ExportImage
Img = ActiveWorkbook.Path & "\Temp.jpg"
    If Dir(Img) <> "" Then
    Image1.Picture = LoadPicture(Img)
    Else
    Image1.Picture = LoadPicture("")
    End If
    Image1.PictureSizeMode = 3
End Sub

Et dans un module standard

Code:
Sub ExportImage()
With Sheets("File")
    Set Co = .ChartObjects.Add(50, 50, .Shapes("Car1").Width, .Shapes("Car1").Height)  'dimensions à adapter
    .Shapes("Car1").Copy
    With Co.Chart
        .Paste
        .Export Filename:=ActiveWorkbook.Path & "\Temp.jpg" 'ici sauvegarde dans le répertoire du classeur actif
    End With
        Co.Delete
End With
End Sub
A+
kjin
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 172
dernier inscrit
Aurelyan