TUTO EXCELLONS : Manipuler les graphes (charts) par VBA
Les graphiques représentent de présente les données de façon parlante et rapidement compréhensible.
A travers la programmation VBA, EXCEL possèdent un riche ensemble d’objets permettant de créer les graphes (charts) et gérer leurs présentations, leurs couleurs, leurs compositions…
Ce TUTO EXCELLONS décrit de façon succinte les principaux objets de cet ensemble.
(Les copies-écrans du présent document sont réalisées avec EXCEL version 365)
SOMMAIRE
UTILISATION DE L’ENREGISTREUR DE MACROS
LES 2 TYPES DE GRAPHIQUES EXCEL
EXEMPLE COMPLET DE CREATION D’UN GRAPHIQUE INCORPORE
SPECIFIER LES DEUX ZONES DE L’OBJET CHART
SPECIFIER LES OBJETS PRINCIPAUX D’UN GRAPHIQUE
SPECIFIER LA COLLECTION ‘SERIESCOLLECTION’
AJOUTER DES SERIES DE DONNEES A UN GRAPHIQUE
La méthode SeriesCollection.NewSeries
MODIFIER LES CARACTERISTIQUES DES SERIES
Les objets Series.Values et Series.XValue
AJOUTER UNE COURBE DE TENDANCE
La méthode Serie.TrendLines.Add
APPLIQUER UN STYLE PREDEFINI AU GRAPHIQUE
DESCRIPTION DE QUELQUES METHODES UTILES DE LA CLASSE CHART
La méthode Chart.ExportAsFixedFormat
EXPORTER UN GRAPHIQUE AU FORMAT JPEG
UTILISATION DE L’ENREGISTREUR DE MACROS
Du fait de la richesse et de la diversité des méthodes et propriétés exposées par l’objet graphique (chart), beaucoup de temps sera économisé par l’utilisation de l’enregistreur de macros.
Le TUTO EXCELLONS VBA Enregistreur de macro donne des détails sur cette fonctionnalité VBA.
Dans le cas de son utilisation sur les graphiques, bien noter que l’enregistreur de macros :
- N’a pas la capacité de générer du code VBA pour toutes les manipulations que nous pouvons réaliser sur un graphique.
- Génère un code VBA souvent ‘bavard’ et non optimisé.
De ce fait, il est recommandé d’utiliser l’enregistreur de macros pour découvrir les objets graphiques manipulés puis, dans un second temps, de reprendre et corriger le code VBA généré pour l’adapter et/ou le simplifier.
LES 2 TYPES DE GRAPHIQUES EXCEL
La représentation ci-dessous, illustre les imbrications des objets EXCEL et montre les 2 types possibles de graphique (chart) dans EXCEL.
Un graphique peut être :
- soit un objet de la collection ‘ChartObjects’ d’une feuille (Worksheet). On parle alors de graphique incorporé (Chart Embedded).Une feuille peut contenir plusieurs graphiques incorporés.
soit un objet d’une feuille de type ‘Graphique’ (Chart Sheet). On parle alors de graphique isolé (Standalone chart). Une feuille graphique ne peut contenir qu’un seul graphique isolé.
Il faut noter qu’un graphique incorporé possède un « don d’ubiquité » : il est membre de la collection « ChartObjects » et en même temps, membre de la collection des formes « Shapes ». De ce fait, lors de la programmation VBA des graphiques incorporés, les méthodes et propriétés de l’objet « Chart » sont mises en oeuvre mais également, certaines méthodes et propriétés de l’objet « Shape ».
Le TUTO EXCELLONS Manipuler les formes par VBA donne des détails sur sur ces méthodes et fonctions qui ne sont pas reprises ici.
CREER UN GRAPHIQUE INCORPORE
Un graphique incorporé est créé à l’aide de l’une des 2 méthodes suivantes :
La méthode ChartObjects.Add (Left, Top, Width, Height)
Cette méthode insère dans une feuille un graphique incorporé du type défini par défaut, dont la position est déterminée par les paramètres ‘Left (gauche)’ et ‘Top (haut)’ et la taille par les paramètres ‘Width (largeur)’ et ‘Height (hauteur)’ exprimés en points.
Le fragment de code ci-dessous créé un nouveau graphique incorporé du type défini par défaut :
Sub AddDefaultChart()
Dim oSheet As Worksheet
Dim oChartObject As ChartObject
Dim oChart As Chart
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets(1)
'On créé un nouveau graphique incorporé du type par défaut
Set oChartObject = oSheet.ChartObjects.Add(600, 20, 300, 200)
‘On réfère le graphique (pour utilisation ultérieure)
Set oChart = oChartObject.Chart
End Sub
Pour définir ou modifier le type de graphique par défaut, se référer à la page :
https://fr.officetooltips.com/excel_2016/tips/comment_changer_le_graphique_par_defaut.html)
La méthode Shapes.AddChart2
Cette méthode, plus ‘riche’ que la précédente insère dans la feuille un graphique incorporé en définissant son style et son type, ainsi que sa position déterminée par les paramètres ‘Left (gauche)’ et ‘Top (haut)’ et la taille par les paramètres ‘Width (largeur)’ et ‘Height (hauteur)’ tous exprimés en points.
Dans le fragment de code ci-dessous :
- Le paramètre Style est positionné à ’12’
- Le paramètre Type est valorisé avec ‘xlColumnClustered’ c’est à dire un ‘Histogramme groupé’
- Le paramètre NewLayout valorisé à ‘True’ indique que le titre et les légendes du graphique sont automatiquement activés.
Sub AddTypedChart()
Dim oSheet As Worksheet
Dim oShape As Shape
Dim oChart As Chart
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets(1)
'On créé un nouveau graphique incorporé d'un style et d’un type déterminés
Set oShape = oSheet.Shapes.AddChart2(12, xlColumnClustered, 600, 20, 600, 460, True)
‘On réfère le graphique (pour utilisation ultérieure)
Set oChart = oShape.Chart
End Sub
Le paramétrage de la méthode « Shapes.AddChart2 » comporte les particularités suivantes :
- Pour positionner le paramètre ‘Style’ sur le style par défaut du Type indiqué, le valoriser à « -1 ».
- Il n’est pas évident de connaitre la valeur désirée du paramètre « Style ». Le plus simple pour la déterminer consiste à utiliser l’enregistreur de macros.
- Pour déterminer la valeur du paramètre « Type », on se reportera à l’énumération : https://docs.microsoft.com/fr-fr/office/vba/api/excel.xlcharttype
CREER UN GRAPHIQUE ISOLE
Un graphique isolé est créé à l’aide de :
La méthode Charts.Add2
Cette méthode comporte les paramètres suivants :
- Les paramètres « Before (avant) » et « After (après) » permettent de positionner la nouvelle feuille graphique dans le classeur.
- Le paramètre « Count (nombre) » permet d’indiquer le nombre de feuilles graphiques identiques à créer (par défaut = 1).
- Le paramètre NewLayout indique que le titre et les légendes du graphique sont automatiquement activés lorsqu’il est valorisé à « true ».
Le fragment de code suivant créé une feuille graphique du type défini par défaut, positionné comme première feuille du classeur, ayant pour titre ‘ComparatifDépenses’ :
Sub Add2StandaloneChart()
Dim oChart As Chart
'On créé une nouvelle feuille graphique du type par défaut positionnée comme première feuille du classeur
Set oChart = ThisWorkbook.Charts.Add2(ThisWorkbook.Sheets(1), , , True)
With oChart
'On nomme la nouvelle feuille graphique
.Name = "ComparatifDepenses"
End With
End Sub
Le code VBA suivant créé un graphique incorporé illustrant les dépenses pour le mois de janvier 2020
Sub AddSampleChart()
Dim oSheet As Worksheet
Dim oChartObject As ChartObject
Dim oChart As Chart
Dim oSerie As Series
'On référe la feuille de destination du graphique contenant les données
Set oSheet = ThisWorkbook.Worksheets("Données")
'On créé un nouveau graphique incorporé du type par défaut
Set oChartObject = oSheet.ChartObjects.Add(1, 200, 300, 200)
'On réfère le graphique créé
Set oChart = oChartObject.Chart
'On ajoute une série au graphique
Set oSerie = oChart.SeriesCollection.NewSeries
With oSerie
'On indique la plage utilisée pour les valeurs de la série
.Values = oSheet.Range("B3:B11")
'On indique la plage utilisée pour les libellés de l'axe horizontal
.XValues = oSheet.Range("A3:A11")
End With
End Sub
Résultat obtenu :
Sub ModifyChartAreaProperties()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oChartArea As ChartArea
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On réfère la zone de graphique
Set oChartArea = oChart.ChartArea
With oChartArea
'On modifie la hauteur , la position gauche et la forme de la bordure extérieure de la zone de graphique
.Height = 400
.Width = 600
.RoundedCorners = True
End With
End Sub
Résultat obtenu :
Il est à noter que l’objet Format de l’objet ChartArea d’un graphique incorporé est en lecture seule.
Pour modifier, la couleur de fond du graphique, nous utilisons l’objet parent de l’objet Chart (i.e. ChartObject).
Pour obtenir les paramètres de la fonction RGB() correspondants à la couleur désirée, reporterons-nous à la page :
https://www.excel-pratique.com/fr/vba/liste-couleurs-rgb
Le code VBA suivant modifie la couleur de fond du graphique :
Sub modifyChartAreaBackcolor()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oChartArea As ChartArea
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'L'objet Format de ChartArea est en lecture seule -> on passe par l'objet parent (ChartObject)
oChart.Parent.Interior.Color = RGB(224, 238, 224)
End Sub
Résultat obtenu :
Sub ModifyPlotAreaProperties()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oPlotArea As PlotArea
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On réfère la zone de traçage
Set oPlotArea = oChart.PlotArea
With oPlotArea
'On modifie certaines propriétés de la zone de traçage : hauteur et largeur à 75% de la zone de graphique
.InsideHeight = oChart.ChartArea.Height * 0.75
.InsideWidth = oChart.ChartArea.Width * 0.75
'On efface les éventuels formats de la zone de traçage
.ClearFormats
'On affecte les caractéristiques du fond de la zone de traçage
With .Format.Fill
'On affecte un dégradé depuis le coin
.OneColorGradient msoGradientFromCorner, 1, 1
'On affecte la couleur grise estompée
.BackColor.RGB = RGB(153, 153, 153)
End With
End With
End Sub
Résultat obtenu :
Sub SetChartTitle()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oChartTitle As ChartTitle
Dim lPos As Long
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On indique que le graphique possède un titre
oChart.HasTitle = True
'On réfère le titre
Set oChartTitle = oChart.ChartTitle
With oChartTitle
'On compose le texte du titre composé de 2 lignes
.Text = "Dépenses mensuelles" & vbCr & "par postes budgétaires"
'On récupère la position du saut de ligne
lPos = InStr(1, .Text, vbCr)
'On modifie les caractéristiques de la première ligne du titre
With .Characters(1, lPos - 1)
.Font.Size = 12
.Font.Bold = True
.Font.Color = vbBlue
End With
'On modifie les caractéristiques de la deuxième ligne du titre
With .Characters(lPos)
.Font.Size = 10
.Font.Bold = False
.Font.Italic = True
.Font.Color = vbYellow
End With
End With
End Sub
Résultat obtenu :
Remarque : Dans la version EXCEL 365 utilisée (juillet 2025) et les versions antérieures, la longueur du texte du titre d’un graphique est limitée à 255 caractères. Lorsque la longueur du titre dépasse 255 caractères, VBA retourne une erreur à l’exécution.
Le code VBA précédent positionne le titre à l’intérieur de la zone de traçage. Le code VBA suivant positionne ce titre à l’extérieur de la zone de traçage :
Sub IsoleChartTitle()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oPlotArea As PlotArea
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On réfère la zone de traçage
Set oPlotArea = oChart.PlotArea
oPlotArea.InsideTop = oChart.ChartArea.Top - 20
End Sub
Résultat obtenu :
Sub SetChartLegend()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oChartLegend As Legend
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On indique que le graphique possède un cartouche de légende
oChart.HasLegend = True
'On réfère le cartouche
Set oChartLegend = oChart.Legend
With oChartLegend
'On déplace la légende en bas du graphique
.Position = xlLegendPositionBottom
'On formate la bordure
With .Border
.Color = vbBlack
.LineStyle = xlDashDot
.Weight = xlThin
End With
End With
End Sub
Résultat obtenu :
Le code VBA précédent positionne le cartouche de légende trop près des libellés de l’axe des abscisses. Le code VBA suivant isole le cartouche de légende :
Sub IsoleLegend()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oPlotArea As PlotArea
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On réfère la zone de traçage
Set oPlotArea = oChart.PlotArea
oPlotArea.InsideHeight = oPlotArea.InsideHeight * 0.85
End Sub
Résultat obtenu :
L’objet Axis représente l’un des axes du graphique.
La collection Axes (xlAxisType) permet de référencer un objet Axis particuler.
L’énumération xlAxisType contient les constantes suivantes :
- xlCategory désigne l’axe des abscisses.
- xlValue désigne l’axe des ordonnées.
- xlSeriesAxis désigne l’axe de la 3ième dimension d’un graphique en 3D.
Le code VBA suivant affecte un titre à l’axe des abscisses et modifie sa couleur :
Sub SetAbscisses()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oAxis As Axis
Dim lgvsViolet As Long
'On valorise une variable locale à la couleur violet
lgvsViolet = RGB(112, 48, 160)
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On réfère l'axe des abscisses
Set oAxis = oChart.Axes(xlCategory)
With oAxis
'On indique que l'axe a un titre
.HasTitle = True
With .AxisTitle
'On indique le titre de l'axe
.Text = "Postes budgétaires"
'On formate et colorise le titre de l'axe
.Font.Size = 10
.Font.Italic = True
.Font.Color = lgvsViolet
End With
'On colorise les étiquettes
.TickLabels.Font.Color = lgvsViolet
End With
End Sub
Résultat obtenu :
Le code VBA suivant affecte un titre à l’axe des ordonnées et modifie sa couleur :
Sub SetOrdonnees()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oAxis As Axis
Dim lgvsViolet As Long
'On valorise une variable locale à la couleur violet
lgvsViolet = RGB(112, 48, 160)
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On réfère l'axe des ordonnées
Set oAxis = oChart.Axes(xlValue)
With oAxis
With .Format.Line
'On positionne une flêche sur l'axe des ordonnées
.EndArrowheadStyle = msoArrowheadTriangle
'On fixe la taille de l'axe
.Weight = 1.5
'On colorise l'axe des ordonnées en bleu
.ForeColor.RGB = RGB(0, 0, 255)
'On indique que l'axe a un titre
End With
'On indique que l'axe a un titre
.HasTitle = True
With .AxisTitle
'On indique le titre de l'axe
.Text = "Dépenses"
'On formate et colorise le titre de l'axe
.Font.Size = 10
.Font.Italic = True
.Font.Color = vbBlue
End With
'On colorise les étiquettes
.TickLabels.Font.Color = vbBlue
End With
End Sub
Résultat obtenu :
SPECIFIER LA COLLECTION ‘SERIESCOLLECTION’
La collection SeriesCollection rassemble toutes les séries de valeurs présentes dans le graphique.
L’objet Series désigne les séries du graphique. On réfère une série particulière de valeurs en spécifiant son index.
De plus, l’objet Series possède la collection DataLabels référençant les étiquettes de données de la série.
Le code VBA suivant ajoute des étiquettes à la série de donnée d’index 1 et les met en forme :
Sub addDatalabels()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oSerie As Series
Dim oDatalabel As DataLabel
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On réfère la première série
Set oSerie = oChart.SeriesCollection(1)
'On indique que la série possède des étiquettes
oSerie.HasDataLabels = True
For Each oDatalabel In oSerie.DataLabels
'On colorise le texte de l'étiquette et la met en italique
With oDatalabel
.Font.Color = vbBlue
.Font.Italic = True
End With
Next
End Sub
Résultat obtenu :
Sub AddSeries()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oSerie As Series
Dim i As Integer
'On réfère la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On réfère le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On réalise une boucle de 3 itérations
For i = 1 To 3
'On ajoute une série de données
Set oSerie = oChart.SeriesCollection.NewSeries
'On référençe la plage de valeurs de la colonne correspondante du tableau de données
oSerie.Values = oSheet.Range("B3:B11").Offset(, i)
Next
End Sub
Résultat obtenu :
MODIFIER LES CARACTERISTIQUES DES SERIES
Les objets Series.Values et Series.XValue permettent d’indiquer les références de plages, respectivement pour les données et pour les étiquettes d’une série.
Le code VBA suivant spécifie la plage de données EXCEL pour les valeurs et les étiquettes d’une série d’un graphique :
Sub AddSampleChart()
Dim oSheet As Worksheet
Dim oChartObject As ChartObject
Dim oChart As Chart
Dim oSerie As Series
'On référe la feuille de destination du graphique contenant les données
Set oSheet = ThisWorkbook.Worksheets("Données")
'On créé un nouveau graphique incorporé du type par défaut
Set oChartObject = oSheet.ChartObjects.Add(1, 200, 300, 200)
'On réfère le graphique créé
Set oChart = oChartObject.Chart
'On ajoute une série au graphique
Set oSerie = oChart.SeriesCollection.NewSeries
With oSerie
'On indique la plage utilisée pour les valeurs de la série
.Values = oSheet.Range("B3:B11")
'On indique la plage utilisée pour les libellés de l'axe horizontal
.XValues = oSheet.Range("A3:A11")
End With
End Sub
Sub changeBarColor()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oSerie As Series
Dim oFormat As ChartFormat
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On réfère la troisième série
Set oSerie = oChart.SeriesCollection(3)
'On réfère le format de la série
Set oFormat = oSerie.Format
'On modifie la couleur de la barre
oFormat.Fill.ForeColor.RGB = RGB(153, 102, 0)
End Sub
Résultat obtenu :
Sub SetSeriesName()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oSerie As Series
Dim i As Integer
'On réfère la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On réfère le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
For i = 1 To 4
Set oSerie = oChart.SeriesCollection(i)
'On affecte le nom de la série par référence à l'entête de la colonne du tableau
oSerie.Name = oSheet.Range("A2").Offset(, i).Value
Next
End Sub
Résultat obtenu :
AJOUTER UNE COURBE DE TENDANCE
La collection TrendLines d’un objet Serie réfère toutes les courbes de tendance définies pour une série.
L’objet TrendLine désigne une courbe de tendance particulière pour une série donnée.
La méthode Serie.TrendLines.Add(xlTrendLineType,…) permet d’ajouter une nouvelle courbe de tendance à une série de données.
Le code VBA suivant crée une courbe de tendance sur la moyenne de 2 valeurs successives pour la série de données d’index 1 et formate cette courbe :
Sub AddTrendLine()
Dim oSheet As Worksheet
Dim oChart As Chart
Dim oTendance As Trendline
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On ajoute une courbe de tendance sur la moyenne entre 2 valeurs de la série 1
Set oTendance = oChart.SeriesCollection(1).Trendlines.Add(xlMovingAvg)
'On formate la courbe de tendance : couleur rouge, épaisseur 1.5
With oTendance.Format.Line
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Weight = 1.5
End With
End Sub
Résultat obtenu :
APPLIQUER UN STYLE PREDEFINI AU GRAPHIQUE
Plutôt que de modifier individuellement les caractéristiques des objets d’un graphique, EXCEL offre la possibilité d’appliquer un style prédéfini.
La propriété Chart.Style (lStyle) permet d’appliquer un style prédéfini à un graphique.
Pour déterminer la valeur du paramètre « lStyle», le plus simple consiste à utiliser l’enregistreur de macros en effectuant manuellement la transformation désirée.
Le code VBA suivant applique le style prédéfini d’index 294 au graphique :
Sub changeChartStyle()
Dim oSheet As Worksheet
Dim oChart As Chart
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On rétablit la mise en forme par défaut du graphique
oChart.ClearToMatchStyle
'On applique le style désiré : Barres 3D fond noir
oChart.ChartStyle = 294
End Sub
Résultat obtenu :
DESCRIPTION DE QUELQUES METHODES UTILES DE LA CLASSE CHART
EXPORTER UN GRAPHIQUE EN PDF
La méthode Chart.ExportAsFixedFormat
La méthode Chart.ExportAsFixedFormat (Type, FileName,…) permet d’exporter un graphique au format PDF.
Le code VBA suivant exporte le graphique dans un fichier PDF ayant pour nom ‘EXCELLONS_TUTO_VBA_GRAPHE.pdf’ :
Private Sub exportChart()
Dim sMess As String
Dim lElementID As Long, lArg1 As Long, lArg2 As Long
Dim oSheet As Worksheet
Dim oChart As Chart
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On exporte le graphique dans un fichier PDF
oChart.ExportAsFixedFormat ExportAsFixedFormat, ThisWorkbook.Path & "\" & "EXCELLONS_TUTO_VBA_GRAPHE.pdf"
End Sub
Private Sub exportToJPEG()
Dim lElementID As Long, lArg1 As Long, lArg2 As Long
Dim oSheet As Worksheet
Dim oChart As Chart
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On exporte le graphique au format image JPEG
oChart.Export ThisWorkbook.Path & "\" & "EXCELLONS_TUTO_VBA_GRAPHE.jpg"
End Sub
Private Sub printChart()
Dim sMess As String
Dim lElementID As Long, lArg1 As Long, lArg2 As Long
Dim oSheet As Worksheet
Dim oChart As Chart
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On imprime le graphique
oChart.PrintOut
End Sub
Private Sub SaveChartAsTemplate()
Dim oSheet As Worksheet
Dim oChart As Chart
'On référe la feuille
Set oSheet = ThisWorkbook.Worksheets("Données")
'On référe le graphique incorporé
Set oChart = oSheet.ChartObjects(1).Chart
'On exporte le graphique sous forme de graphique modèle
oChart.SaveChartTemplate ThisWorkbook.Path & "\" & "DepensesParPostes.crtx"
End Sub









































