Comment enregistrer un graphique dans un fichier PNG ou GIF dans Microsoft Excel?
Je sais que je peux enregistrer en tant que fichier HTML et utiliser l'image créée à cet emplacement, mais je suppose qu'il existe un moyen de ne pas créer d'autres fichiers encombrés que je ne souhaite pas. Je suis heureux d'installer un complément si c'est l'option recommandée.
J'utilise Excel 2003 et 2007 si cela compte.
Excel ne dispose d'aucun support accessible à l'utilisateur pour cette fonctionnalité, mais vous pouvez soit contourner ce problème, soit accéder à VBA, où cette fonctionnalité est fournie:
Vous voudrez probablement utiliser ActiveChart.Export
dans une macro VBA, cela vous permet de spécifier un chemin de fichier, puis de laisser Excel faire le travail.
Vous trouverez ci-dessous un prototype fonctionnel que je viens de mettre en place. Exécutez ce et chaque graphique du classeur actif sera exporté vers le même dossier que ce fichier, au format PNG, avec _chart##
ajouté au nom du fichier (où ##
est un nombre croissant).
ne n'effectue aucune vérification de sécurité (donc écrasera les fichiers!) Et ne ne contient aucune vérification d'erreur. Cela ne fonctionnera pas si vous n'avez pas encore enregistré le classeur, si l'emplacement est en lecture seule ou tout autre élément empêchant l'écriture dans l'emplacement du fichier. Je n’ai testé cela que dans Excel 2003 (c’est tout ce que j’ai sous la main pour le moment).
En d'autres termes: Utilisez-le à vos risques et périls , il s'agit d'un exemple de travail de base .
'small nicety to ensure two-digits for better file sorting'
Function NiceFileNumber(num As Integer) As String
If num < 10 Then
NiceFileNumber = "0" & num
Else
NiceFileNumber = num
End If
End Function
'the real function'
Sub ExportAllCharts()
Dim i As Integer, exportCount As Integer
Dim fileNum As String, fileBase As String
Dim sheetObj As Worksheet
Dim chartObj As Chart
'current file location and name, with extension stripped'
fileBase = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".") - 1)
exportCount = 0
'First, export all charts that are in their own sheets'
For Each chartObj In ActiveWorkbook.Charts
fileNum = NiceFileNumber(exportCount)
exportCount = exportCount + 1
'Do the export'
chartObj.Export fileBase & "_chart" & fileNum & ".png"
Next
'Then, export all charts that are embedded inside normal sheets'
For Each sheetObj In ActiveWorkbook.Worksheets
For i = 1 To sheetObj.ChartObjects.count
fileNum = NiceFileNumber(exportCount)
exportCount = exportCount + 1
'Do the export'
sheetObj.ChartObjects(i).Activate
ActiveChart.Export fileBase & "_chart" & fileNum & ".png"
Next i
Next
End Sub
Remarque: j'ai inséré les commentaires dans '
s aux deux extrémités, ce qui n'est pas nécessaire, mais permet de s'assurer qu'ils sont correctement colorés ici.
Le meilleur moyen consiste à enregistrer le fichier Excel au format HTML.
Ensuite, allez dans le dossier où les images ont été stockées et vous verrez les images PNG que vous voulez.
Pour convertir en toute sécurité au format PNG, vous pouvez copier la figure à partir d'Excel, la coller sur une diapositive dans Power Point, puis procéder comme suit.
Enregistrer sous → Autres formats , puis sélectionnez le format de votre choix. Il vous demandera ensuite si vous souhaitez appliquer cela à la diapositive actuelle ou à toutes les diapositives. Si vous sélectionnez toutes les diapositives, il crée un dossier dans le répertoire que vous spécifiez et enregistre chaque diapositive dans son propre fichier au format sélectionné.
Ce n'est pas très élégant, mais cela peut être assez rapide quand vous avez juste besoin des fichiers, et c'est particulièrement utile si vous avez déjà fait une présentation avec les mêmes graphiques.
Ancien fil de discussion, mais au cas où quelqu'un arriverait ici par Google: Excel 2011 pour Mac propose l'option "Enregistrer en tant qu'image" dans le menu contextuel pour effectuer cette opération.
Dans Excel 2010, vous pouvez le faire en:
Ensuite, vous pouvez enregistrer l'image dans le format de votre choix.
Si vous utilisez Greenshot (un logiciel de capture d'écran), vous pouvez copier le graphique dans Excel (Ctrl+C), puis cliquez avec le bouton droit de la souris sur l’icône de Greenshot, sélectionnez Ouvrir l’image du presse-papiers et enregistrez-la. Pas besoin d'utiliser l'éditeur graphique.