Créer un graphique High-Low-Close (haut-bas-fermé), Excel VBA

Créer un graphique High-Low-Close (haut-bas-fermé), Excel VBA

Voici un code VBA détaillé pour créer un graphique High-Low-Close (haut-bas-fermé) dans Excel, avec une explication complète de chaque étape :
Code VBA pour un graphique High-Low-Close :

Sub CreateHighLowCloseChart()
    Dim ws As Worksheet
    Dim chartObj As ChartObject
    Dim chart As Chart
    Dim dataRange As Range
    Dim xValues As Range
    Dim highValues As Range
    Dim lowValues As Range
    Dim closeValues As Range
    ' Définir la feuille de calcul
    Set ws = ThisWorkbook.Sheets("Sheet1")
    ' Définir la plage de données (assurez-vous que les données sont dans un tableau avec Date, High, Low, et Close)
    ' Supposons que les données sont dans les colonnes A, B, C, et D avec une ligne d'en-tête
    Set dataRange = ws.Range("A1:D10") ' Ajustez la plage en fonction de vos données
    ' Définir les plages de données individuelles
    Set xValues = ws.Range("A2:A10") ' Dates
    Set highValues = ws.Range("B2:B10") ' Prix hauts
    Set lowValues = ws.Range("C2:C10") ' Prix bas
    Set closeValues = ws.Range("D2:D10") ' Prix de clôture
    ' Ajouter un nouveau graphique à la feuille de calcul
    Set chartObj = ws.ChartObjects.Add(Left:=100, Width:=500, Top:=100, Height:=300)
    Set chart = chartObj.Chart
    ' Définir le type de graphique comme High-Low-Close
    chart.ChartType = xlStockHLC
    ' Définir les données pour le graphique (High-Low-Close)
    chart.SetSourceData Source:=dataRange
    ' Définir l'axe X comme les dates
    chart.Axes(xlCategory).CategoryNames = xValues
    ' Définir les séries pour High, Low et Close
    chart.SeriesCollection.NewSeries
    chart.SeriesCollection(1).XValues = xValues
    chart.SeriesCollection(1).Values = highValues
    chart.SeriesCollection(1).Name = "High"
    chart.SeriesCollection.NewSeries
    chart.SeriesCollection(2).XValues = xValues
    chart.SeriesCollection(2).Values = lowValues
    chart.SeriesCollection(2).Name = "Low"
    chart.SeriesCollection.NewSeries
    chart.SeriesCollection(3).XValues = xValues
    chart.SeriesCollection(3).Values = closeValues
    chart.SeriesCollection(3).Name = "Close"
    ' Format du titre du graphique
    chart.HasTitle = True
    chart.ChartTitle.Text = "Graphique High-Low-Close"
    ' Format des titres des axes
    chart.Axes(xlCategory, xlPrimary).HasTitle = True
    chart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Date"
    chart.Axes(xlValue, xlPrimary).HasTitle = True
    chart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Prix"
    ' Personnalisation des autres éléments du graphique si nécessaire (par exemple, couleurs, étiquettes)
    ' Exemple : changer la couleur des séries
    chart.SeriesCollection(1).Format.Line.ForeColor.RGB = RGB(255, 0, 0) ' Série High - Rouge
    chart.SeriesCollection(2).Format.Line.ForeColor.RGB = RGB(0, 255, 0) ' Série Low - Vert
    chart.SeriesCollection(3).Format.Line.ForeColor.RGB = RGB(0, 0, 255) ' Série Close - Bleu
    ' Ajustement de l'échelle des axes (facultatif)
    chart.Axes(xlValue).MinimumScale = WorksheetFunction.Min(closeValues) * 0.9
    chart.Axes(xlValue).MaximumScale = WorksheetFunction.Max(closeValues) * 1.1
End Sub

Explication du Code :
1. Définition de la feuille de calcul et des plages :

  • Le code commence par définir la feuille de calcul ws où les données sont situées (Sheet1 dans cet exemple).
  • Les données pour le graphique High-Low-Close sont supposées être dans les colonnes A (Date), B (High), C (Low), et D (Close). La plage de données (dataRange) est définie pour inclure ces colonnes.

2. Création du graphique :

  • La méthode ChartObjects.Add ajoute un graphique à la feuille de calcul. Les propriétés Left, Width, Top, et Height définissent la taille et la position du graphique sur la feuille.
  • Le type de graphique est défini par chart.ChartType = xlStockHLC, qui correspond à un graphique High-Low-Close utilisé pour les données financières, comme les prix des actions.

3. Définition des données pour le graphique :

  • Les valeurs de l’axe des X (dates) sont définies avec xValues, et les valeurs des axes Y sont définies pour High (highValues), Low (lowValues), et Close (closeValues).
  • La méthode SeriesCollection.NewSeries crée une nouvelle série de données pour chaque valeur High, Low, et Close.

4. Personnalisation du graphique :

  • Un titre est ajouté au graphique avec chart.HasTitle = True et chart.ChartTitle.Text.
  • Des titres sont ajoutés aux axes (catégorie = Date et valeur = Prix).
  • Les couleurs de chaque série (High, Low, Close) sont personnalisées à l’aide de Format.Line.ForeColor.RGB.

5. Personnalisations optionnelles :

  • L’échelle des axes peut être ajustée en définissant les valeurs minimales et maximales pour l’axe des valeurs en fonction des données de clôture (MinimumScale et MaximumScale).
  • Vous pouvez également personnaliser davantage le graphique avec des étiquettes, des marqueurs de données, etc.

Notes Importantes :

  • La plage de données et le nom des feuilles doivent être ajustés en fonction de vos propres données.
  • Le type de graphique xlStockHLC est idéal pour les données financières, mais vous pouvez changer le type de graphique si nécessaire (par exemple, xlLine pour un graphique en ligne).
  • Le graphique s’adapte automatiquement lorsque les données sous-jacentes changent.

Ce code vous permettra de générer un graphique High-Low-Close dynamique, qui se mettra à jour chaque fois que les données de la plage spécifiée seront modifiées. Si vous avez besoin de plus de détails ou de modifications, n’hésitez pas à me le faire savoir !

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x