Laboratoire d'idées pour être plus efficace au bureau

/ Excel / Exporter les graphiques d’un classeur Excel en images

Exporter les graphiques d’un classeur Excel en images

Cyril on 08/02/2015 - 00:39 in Excel, vba

Il peut être utile de récupérer un graphique d’une feuille Excel sous forme d’image pour l’insérer ensuite dans un document ou une présentation. Ceci est relativement simple à faire en copiant / collant le graphique dans Paint et en enregistrant le fichier en png par exemple.

Cependant, lorsque le nombre de graphiques est élevé, l’opération devient vite fastidieuse. La macro suivante peut alors être très utile…

Le script VBA ci-dessous parcourt toutes les feuilles d’un classeur Excel et exporte les graphiques qu’elles contiennent sous forme d’images au format png (qui est le plus adapté en termes de qualité et de taille de fichier pour ce genre d’images).

Vous pouvez changer le répertoire d’exportation en modifiant la ligne 11 (par défaut “D:\images”). Ce répertoire doit exister avant de lancer le script.

Si vous ne savez pas comment lancer un script VBA dans Excel, lisez cette page.

Sub ExportCharts()
Dim s As Long
Dim c As Long
Dim curChart As Chart
Dim curSheet As Worksheet
Dim sExportFolderPath As String
Dim sFileName As String
Dim cnt As Long

' Répertoire d'exportation des images
sExportFolderPath = "D:\Images" & Chr(92) ' A modifier selon votre convenance

' On parcourt toutes les feuilles du classeur
For s = 1 To ActiveWorkbook.Worksheets.Count
  Set curSheet = ActiveWorkbook.Worksheets(s)

  'On parcourt les graphiques de la feuille courante
  For c = 1 To curSheet.ChartObjects.Count
    Set curChart = curSheet.ChartObjects(c).Chart

    ' On exporte le graphique courant sous forme d'image png
    sFileName = curChart.Name + ".png"
    curChart.Export Filename:=sExportFolderPath & sFileName, Filtername:="PNG"
    cnt = cnt + 1
  Next c
Next s

' On parcourt tous les graphiques indépendants
For c = 1 To ActiveWorkbook.Charts.Count
  Set curChart = ActiveWorkbook.Charts(c)

  ' On exporte le graphique courant sous forme d'image png
  sFileName = curChart.Name + ".png"
  curChart.Export Filename:=sExportFolderPath & sFileName, Filtername:="PNG"
  cnt = cnt + 1
Next

' On affiche le nombre de graphes exportés
MsgBox CStr(cnt) + " graphiques exportés"

End Sub

 

0 POST COMMENT
Rate this article
Notez cet article

Send Us A Message Here

Your email address will not be published. Required fields are marked *