Création de graphiques dynamiques, Excel VBA

Création de graphiques dynamiques, Excel VBA

Voici une explication détaillée sur la création de graphiques dynamiques avec VBA dans Excel, étape par étape : 

Étape 1 : Préparer vos données 

Tout d’abord, vous devez avoir des données à utiliser pour créer un graphique dynamique. Par exemple, vous pouvez avoir un jeu de données simple comme suit : 

Date  Ventes 
2025-01-01  150 
2025-02-01  200 
2025-03-01  250 
2025-04-01  300 
…  … 

Assurez-vous que vos données sont organisées sous forme de tableau, chaque colonne ayant des en-têtes (dans cet exemple, « Date » et « Ventes »). 

Étape 2 : Insérer un graphique manuellement (facultatif) 

Avant d’écrire du code VBA, il peut être utile d’insérer manuellement un graphique de base pour visualiser à quoi ressemblera votre graphique généré par VBA. Pour ce faire : 

  1. Sélectionnez la plage de données que vous souhaitez tracer. 
  2. Allez dans l’onglet Insertion dans le ruban. 
  3. Choisissez un type de graphique, comme un Graphique en courbes ou un Graphique en colonnes
  4. Cette étape est facultative, mais elle vous aide à visualiser ce à quoi ressemblera votre graphique dynamique. 

Étape 3 : Écrire le code VBA 

Maintenant, nous allons écrire une macro VBA pour créer un graphique dynamique. Un graphique dynamique signifie qu’il s’ajustera automatiquement en fonction des modifications apportées à la plage de données, comme l’ajout de nouvelles données. 

Voici le code qui va créer un graphique dynamique : 

Sub CreateDynamicChart() 
    Dim ws As Worksheet 
    Dim chartObj As ChartObject 
    Dim lastRow As Long 
    Dim dataRange As Range 
    Dim chartRange As Range 
    ' Définir la feuille de travail 
    Set ws = ThisWorkbook.Sheets("Sheet1")  ' Remplacez "Sheet1" par le nom de votre feuille 
    ' Trouver la dernière ligne de données dans la colonne des Ventes (ici supposé dans la colonne B) 
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 
    ' Définir la plage de données dynamiquement (changez A1:B1 en fonction de vos en-têtes et colonnes) 
    Set dataRange = ws.Range("A1:B" & lastRow) 
    ' Créer un nouvel objet graphique 
    Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=500, Top:=100, Height:=300) 
    ' Définir la plage de données pour le graphique 
    chartObj.Chart.SetSourceData Source:=dataRange 
    ' Définir le type de graphique (ici, un graphique en courbes) 
    chartObj.Chart.ChartType = xlLine  
    ' Définir le titre du graphique et des axes 
    chartObj.Chart.HasTitle = True 
    chartObj.Chart.ChartTitle.Text = "Ventes au fil du temps" 
    chartObj.Chart.Axes(xlCategory, xlPrimary).HasTitle = True 
    chartObj.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Date" 
    chartObj.Chart.Axes(xlValue, xlPrimary).HasTitle = True 
    chartObj.Chart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Ventes" 
End Sub

Explication du code : 

1. Paramétrage de la feuille de travail et de l’objet graphique

  • La variable ws représente la feuille de calcul où se trouvent les données. Vous devez remplacer « Sheet1 » par le nom réel de votre feuille de calcul. 
  • La variable chartObj est utilisée pour créer l’objet graphique. 

2. Trouver la dernière ligne

  • Nous déterminons la dernière ligne dans la colonne « Date » (colonne A) à l’aide de ws.Cells(ws.Rows.Count, « A »).End(xlUp).Row. Cela permet de garantir que la plage s’adapte dynamiquement en fonction du nombre de lignes de données. 

3. Définir la plage de données

  • La variable dataRange représente la plage de données que vous souhaitez afficher dans le graphique. Elle est définie dynamiquement en faisant référence à la plage de A1:B suivie de la valeur de lastRow, ce qui garantit que la plage s’ajuste automatiquement lorsqu’on ajoute de nouvelles données. 

4. Création du graphique

  • La ligne chartObj = ws.ChartObjects.Add crée un nouveau graphique et l’ajoute à la feuille de calcul avec la taille et la position spécifiées. 
  • La méthode SetSourceData Source:=dataRange attribue la plage de données dynamique au graphique. 
  • Le type de graphique est défini avec chartObj.Chart.ChartType = xlLine (vous pouvez le changer pour xlColumn, xlBar, etc., en fonction du type de graphique que vous souhaitez). 

5. Définir les titres

  • Le titre du graphique et des axes est configuré avec les propriétés ChartTitle.Text et AxisTitle.Text. 

Étape 4 : Exécuter le code 

  1. Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA. 
  2. Allez dans Insertion > Module et collez le code VBA dans le module. 
  3. Appuyez sur F5 ou revenez dans Excel et exécutez la macro en appuyant sur Alt + F8, sélectionnez CreateDynamicChart, puis cliquez sur Exécuter

Résultat : 

Une fois que vous avez exécuté la macro, Excel générera automatiquement un graphique dynamique. Lorsque vous ajoutez de nouvelles données dans le tableau (dans les colonnes « Date » et « Ventes »), le graphique se mettra à jour pour inclure les nouvelles valeurs. 

Points clés : 

  • La plage dynamique garantit que le graphique s’ajuste automatiquement à mesure que des données sont ajoutées. 
  • Le calcul de lastRow permet de déterminer la taille de la plage de données. 
  • Le type de graphique peut être changé pour tout type souhaité (courbe, colonne, barre, etc.). 
Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x