Dans l’article « Tracé d’un graphique en VBA« , vous avez appris à insérer un graphique dans la feuille courante. Cet article va aller beaucoup plus loin. En effet, vous allez y apprendre comment choisir l’emplacement, la taille, la position et le type du graphique dans la feuille.
Voici le code utilisé :
Dim feuille As Worksheet
Dim graphique As ChartObject
Set feuille = Sheets("Feuil1")
Set graphique = feuille.ChartObjects.Add(60, 50, 500, 300)
With graphique.Chart
.ChartType = xlLineMarkers
.SeriesCollection.NewSeries
With .SeriesCollection(1)
.Values = feuille.Range("A2:C2")
.XValues = feuille.Range("A1:C1")
End With
End With
Set graphique = Nothing
Set feuille = Nothing
Les deux premières instructions définissent les variables feuille et graphique qui représenteront respectivement la feuille dans laquelle le graphique sera inséré et le graphique à insérer :
Dim feuille As Worksheet Dim graphique As ChartObject
L’instruction suivante affecte la feuille Feuil1 à la variable feuille :
Set feuille = Sheets("Feuil1")
L’instruction suivante ajoute à la feuille Feuil1 un graphique :
- de largeur 500 pixels ;
- de hauteur 500 pixels ;
- dont l’angle supérieur gauche se trouve à 60 pixels du bord gauche et à 50 pixels du bord supérieur.
Pour faciliter l’écriture du code, ce graphique est affecté à la variable graphique :
Set graphique = feuille.ChartObjects.Add(60, 50, 500, 300)
L’instruction With … End With suivante définit les caractéristiques du graphique. On commence par le type du graphique, via la propriété ChartType :
With graphique.Chart .ChartType = xlLineMarkers
Comme le montre le tableau suivant, de très nombreux graphiques peuvent être définis dans Excel 2016 :
| ChartType | Signification |
| xl3DArea | Aires 3D |
| xl3DAreaStacked | Aires 3D empilées |
| xl3DAreaStacked100 | Aires empilées 100 % |
| xl3DBarClustered | Barres groupées 3D |
| xl3DBarStacked | Barres empilées 3D |
| xl3DBarStacked100 | Barres empilées 100 % 3D |
| xl3DColumn | Histogramme 3D |
| xl3DColumnClustered | Histogramme groupé 3D |
| xl3DColumnStacked | Histogramme empilé 3D |
| xl3DColumnStacked100 | Histogramme empilé 100 % 3D |
| xl3DLine | Courbe 3D |
| xl3DPie | Secteurs en 3D |
| xl3DPieExploded | Secteurs éclatés en 3D |
| xlArea | Aires |
| xlAreaStacked | Aires empilées |
| xlAreaStacked100 | Aires empilées 100 % |
| xlBarClustered | Barres groupées |
| xlBarOfPie | Barres de secteurs |
| xlBarStacked | Barres empilées |
| xlBarStacked100 | Barres empilées 100 % |
| xlBubble | Bulles |
| xlBubble3DEffect | Bulles avec effet 3D |
| xlColumnClustered | Histogramme groupé |
| xlColumnStacked | Histogramme empilé |
| xlColumnStacked100 | Histogramme empilé 100 % |
| xlConeBarClustered | Barres groupées à forme conique |
| xlConeBarStacked | Barres empilées à forme conique |
| xlConeBarStacked100 | Barres empilées 100 % à forme conique |
| xlConeCol | Histogramme 3D à forme conique |
| xlConeColClustered | Histogramme groupé à formes coniques |
| xlConeColStacked | Histogramme empilé à formes coniques |
| xlConeColStacked100 | Histogramme empilé 100 % à formes coniques |
| xlCylinderBarClustered | Barres groupées à formes cylindriques |
| xlCylinderBarStacked | Barres empilées à formes cylindriques |
| xlCylinderBarStacked100 | Barres empilées 100 % à formes cylindriques |
| xlCylinderCol | Histogramme 3D à formes cylindriques |
| xlCylinderColClustered | Histogramme groupé à formes coniques |
| xlCylinderColStacked | Histogramme empilé à formes coniques |
| xlCylinderColStacked100 | Histogramme empilé 100 % à formes cylindriques |
| xlDoughnut | Anneau |
| xlDoughnutExploded | Anneau éclaté |
| xlLine | Courbe |
| xlLineMarkers | Courbes avec marques |
| xlLineMarkersStacked | Courbe empilée avec marques |
| xlLineMarkersStacked100 | Courbe empilée 100 % avec marques |
| xlLineStacked | Courbe empilée |
| xlLineStacked100 | Courbe empilée 100 % |
| xlPie | Secteurs |
| xlPieExploded | Secteurs éclatés |
| xlPieOfPie | Secteurs de secteurs |
| xlPyramidBarClustered | Histogramme groupé à formes pyramidales |
| xlPyramidBarStacked | Histogramme empilé à formes pyramidales |
| xlPyramidBarStacked100 | Histogramme empilé 100 % à formes pyramidales |
| xlPyramidCol | Histogramme 3D à formes pyramidales |
| xlPyramidColClustered | Histogramme groupé à formes pyramidales |
| xlPyramidColStacked | Histogramme empilé à formes pyramidales |
| xlPyramidColStacked100 | Histogramme empilé 100 % à formes pyramidales |
| xlRadar | Radar |
| xlRadarFilled | Radar plein |
| xlRadarMarkers | Radar avec marqueurs |
| xlStockHLC | Max-Min-Clôture |
| xlStockOHLC | Ouverture-Max-Min-Clôture |
| xlStockVHLC | Volume-Max-Min-Clôture |
| xlStockVOHLC | Volume-Ouverture-Max-Min-Clôture |
| xlSurface | Surface 3D |
| xlSurfaceTopView | Surface 3D avec structure apparente |
| xlSurfaceTopViewWireframe | Contour |
| xlSurfaceWireframe | Contour filaire |
| xlXYScatter | Nuage de points |
| xlXYScatterLines | Nuages de points avec courbes |
| xlXYScatterLinesNoMarkers | Nuages de points avec courbes et sans marqueurs |
| xlXYScatterSmooth | Nuages de points avec courbes lissées |
| xlXYScatterSmoothNoMarkers | Nuages de points avec courbes lissées et sans marqueurs |
L’instruction suivante ajoute une collection de séries :
.SeriesCollection.NewSeries
Cette collection est utilisée pour définir les abscisses (XValues) et les ordonnées (Values) correspondantes :
With .SeriesCollection(1)
.Values = feuille.Range("A2:C2")
.XValues = feuille.Range("A1:C1")
End With
Le code se termine par la suppression des variables objet graphique et feuille :
Set graphique = Nothing Set feuille = Nothing
Voici un exemple d’exécution :




bonjour
je veut savoir comment ajouter ou afficher une graphique précise a partire plusieurs feuilles excel. donc les listes de feuilles sont variable