Créer un graphique combiné, Excel VBA

Créer un graphique combiné, Excel VBA

Créer un graphique combiné dans Excel avec VBA consiste à utiliser différentes séries de données dans un seul graphique, en combinant plusieurs types de graphiques (par exemple, des colonnes et des lignes). Voici un exemple détaillé d’un code VBA qui crée un graphique combiné dans Excel. 

Étapes pour créer un graphique combiné avec VBA : 

1. Préparer les données : Pour cet exemple, imaginons que vous avez des données dans la plage A1:C6 : 

  • Colonne A : Mois 
  • Colonne B : Ventes 
  • Colonne C : Coût 

2. Créer un graphique combiné : Le graphique combiné affichera les « Ventes » sous forme de graphique à colonnes et le « Coût » sous forme de graphique en ligne. 

Code VBA 

Sub CreerGraphiqueCombine() 
    Dim ws As Worksheet 
    Dim chartObj As ChartObject 
    Dim chart As Chart 
    ' Référencer la feuille de calcul active 
    Set ws = ThisWorkbook.Sheets("Feuille1")  ' Modifier "Feuille1" par le nom réel de votre feuille 
    ' Créer un graphique combiné (graphique à colonnes et en ligne) 
    Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=400, Top:=100, Height:=300) 
    Set chart = chartObj.Chart 
    ' Définir la plage de données pour le graphique 
    chart.SetSourceData Source:=ws.Range("A1:C6") 
    ' Définir le type de graphique combiné 
    chart.ChartType = xlColumnClustered  ' Type de graphique par défaut : colonnes groupées 
    ' Ajouter une série (par exemple "Ventes") comme graphique à colonnes 
    With chart.SeriesCollection.NewSeries 
        .Name = "Ventes" 
        .XValues = ws.Range("A2:A6") 
        .Values = ws.Range("B2:B6") 
        .ChartType = xlColumnClustered  ' Graphique en colonnes 
    End With 
    ' Ajouter une série (par exemple "Coût") comme graphique en ligne 
    With chart.SeriesCollection.NewSeries 
        .Name = "Coût" 
        .XValues = ws.Range("A2:A6") 
        .Values = ws.Range("C2:C6") 
        .ChartType = xlLine  ' Graphique en ligne 
        .AxisGroup = 2  ' Série sur l'axe secondaire 
    End With 
    ' Ajouter un axe secondaire pour la série "Coût" 
    chart.Axes(xlValue, xlSecondary).CategoryNames = ws.Range("A2:A6") 
    chart.HasSecondaryAxis = True 
    ' Personnaliser les axes 
    With chart.Axes(xlValue) 
        .HasMajorGridlines = True 
        .HasMinorGridlines = False 
        .TickLabels.NumberFormat = "#,##0" 
    End With 
    ' Personnalisation du graphique 
    chart.HasTitle = True 
    chart.ChartTitle.Text = "Graphique combiné Ventes et Coût" 
    chart.HasLegend = True 
    chart.Legend.Position = xlLegendPositionBottom 
End Sub

Explication du Code 

1. Déclaration des objets

  • ws : fait référence à la feuille de calcul dans laquelle les données et le graphique seront insérés. 
  • chartObj : crée un objet graphique dans la feuille de calcul. 
  • chart : référence le graphique créé. 

2. Création du graphique

  • Set chartObj = ws.ChartObjects.Add(…) : ajoute un objet graphique à la feuille de calcul avec les dimensions spécifiées. 
  • chart.SetSourceData Source:=ws.Range(« A1:C6 ») : définit la plage de données à partir de laquelle le graphique sera généré. 

3. Ajouter les séries

  • Pour la première série (« Ventes »), le type de graphique est défini sur xlColumnClustered (graphique à colonnes groupées). 
  • Pour la deuxième série (« Coût »), le type de graphique est défini sur xlLine (graphique en ligne), et la propriété .AxisGroup = 2 place cette série sur l’axe secondaire. 

4. Axe secondaire

  • chart.HasSecondaryAxis = True : permet d’ajouter un axe secondaire pour la série « Coût », qui pourrait avoir une échelle différente de celle des ventes. 

5. Personnalisation

  • Titre du graphique : chart.ChartTitle.Text = « Graphique combiné Ventes et Coût ». 
  • Légende en bas du graphique : chart.Legend.Position = xlLegendPositionBottom. 
  • Personnalisation des axes : ajout de lignes de grille et format des nombres. 

Résultat attendu : 

Le code créera un graphique combiné où : 

  • La série « Ventes » est affichée avec des colonnes. 
  • La série « Coût » est affichée avec une ligne. 
  • L’axe secondaire est utilisé pour la série « Coût », permettant de comparer les deux séries qui peuvent avoir des échelles différentes. 

Personnalisation supplémentaire : 

  • Vous pouvez ajuster les couleurs, les types de graphiques, et d’autres paramètres selon vos préférences en modifiant les propriétés du graphique et des séries. 
Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x