Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…