"image" d'une feuille excel

guima1642

XLDnaute Occasionnel
Bonjour,

Est il possible de sortir un fichier (img ou jpg ou autre) (snapshot) d'une feuille excel avec un format défini.

d'avance merci pour votre aide
 

MJ13

XLDnaute Barbatruc
Re : "image" d'une feuille excel

Bonjour à tous,

Il existe de nombreux moyens:

Soit tu cliques sur l'images, Copier, tu ouvres un logiciel d'images (type Irfan view), tu colles et tu enregistres au format que tu veux.

Soit tu le fais en VBA (il y a déjà eu des demandes sur ce forum).

Sinon il y a aussi les astuces de MicehlXLD avec la bibilothèque Wiaaut.dll (voir sur developpez.com).
 

Staple1600

XLDnaute Barbatruc
Re : "image" d'une feuille excel

Bonjour


Une solution sans macro (dans Excel en natif)

1) Sélection de la plage (en appuyant simultanément sur la touche shift)

2) Edition/Copier une image

3) Edition Coller

Tu obtiens une image de la plage précédemment sélectionnée.

Ce qui donne en VBA
Sub Macro1()
Range("A1:A10").CopyPicture Appearance:=xlScreen, Format:=xlBitmap
Range("B1").Select
ActiveSheet.Paste
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : "image" d'une feuille excel

Bonjour

Regardes ici:
Lien supprimé

Il doit aussi d'autres exemples sur le forum.

Utilises le moteur de recherche du forum pour pouvoir les consulter.



Voici également une procédure plus aboutie
Code:
Public Sub SaveRangeAsImage()
 'auteur: cafeine
Dim r As Range
Dim x As Integer, y As Integer
Dim varFullPath As Variant
Dim Graph As String
 
' selection de la plage par une InputBox
Set r = application.InputBox("Sélectionnez la plage à exporter", _
                    "Export Image", Selection.AddressLocal, Type:=8)
 
r.Select
' copie de la plage en format image grâce à .CopyPicture
Selection.CopyPicture appearance:=xlScreen, Format:=xlBitmap
x = Selection.Width
y = Selection.Height
 
' on utilise l'objet Chart pour sa facilité d'export 
' création du graphique
Workbooks.Add (1)
ActiveSheet.Name = "enGIF"
Charts.Add
ActiveChart.ChartType = xl3DArea
ActiveChart.SetSourceData r
ActiveChart.Location xlLocationAsObject, "enGIF"
' le graph n'est là que comme réceptacle de l'image, on le vide avec .ClearContents
ActiveChart.ChartArea.ClearContents
' on colle l'image qui réside dans le presse papier
ActiveChart.Paste
 
' redimensionnement
' on récupére le nom du graph de la collection Shapes
Graph = Mid(ActiveChart.Name, Len(ActiveSheet.Name) + 1)
' on effectue un redimensionnement
ActiveSheet.Shapes(Graph).ScaleWidth x / ActiveChart.ChartArea.Width, _
            msoFalse, msoScaleFromTopLeft
ActiveSheet.Shapes(Graph).ScaleHeight y / ActiveChart.ChartArea.Height, _
            msoFalse, msoScaleFromTopLeft
            
' export
varFullPath = application.GetSaveAsFilename("C:\Temp\export-" & Format(Now, "yyyymmddhhnn") & ".gif", _
                "Fichiers GIF (*.gif), *.gif")
ActiveChart.Export varFullPath, "GIF"
ActiveChart.Pictures(1).Delete
ActiveWorkbook.Close False
    
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 523
Messages
2 089 309
Membres
104 119
dernier inscrit
karbone57