Transformer un tableau ou un graphique Excel en image
La méthode Export de l'objet Chart (graphique)
permet de convertir un graphique en image au format .gif ou .jpg (pour les graphique,
le format .gif est plus compact).
Pour convertir au format .jpg le premier graphique de la deuxième feuille du classeur actif :
Sheets(2).ChartObjects(1).Chart.Export "c:\mes documents\rien.jpg", "JPG"
Le graphique est enregistré sous le nom de rien.jpg.
Pour enregistrer sous c:\zaza.gif le graphique zaza de la feuille Feuil1 :
Sheets("Feuil1").ChartObjects("Zaza").Chart.Export "c:\zaza.gif", "GIF"
On peut de la même façon enregistrer en image une feuille graphique.
Pour exporter la première feuille graphique du classeur truc.xls :
Workbooks("truc.xls").Charts(1).Export "c:\mes documents\rien.jpg", "JPG"
Enfin, on peut transformer en image n'importe quelle plage de cellules avant de l'exporter
au format .gif ou .jpg :
Sub export_image_de_plage()
Set Source = Range("A1:C5")
Source.CopyPicture xlScreen, xlPicture
Set gr = Sheets(1).ChartObjects.Add(0, 0, Source.Width, Source.Height)
gr.Chart.Paste
gr.Chart.Export "c:\mes documents\rien.gif", "GIF"
gr.Delete
End Sub
La ligne Source.CopyPicture xlScreen, xlPicture copie sous forme d'image dans le presse-papiers
la plage source telle qu'elle apparaît à l'écran.
La ligne suivante, Sheets(1).ChartObjects.Add(0, 0, Source.Width, Source.Height)
crée un objet graphique (vide) incorporé dans la première feuille du classeur actif.
gr.Chart.Paste y copie l'image du presse-papiers.
Les deux dernières lignes commandent l'export du graphique et la suppression de l'objet graphique
créé pour les besoins de l'opération.
Avant la ligne End Sub, il est recommandé d'insérer des lignes permettant de libérer la
mémoire occupée par les objets gr et Source :
Set gr = Nothing
Set Source = Nothing