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