Créer un graphique en chandeliers, Excel VBA
Voici un code détaillé en VBA pour créer un graphique en chandeliers (candlestick chart) dans Excel, avec des explications à chaque étape.
1. Ouvrir l’éditeur VBA
Pour ajouter ce code VBA dans Excel :
- Ouvrez Excel.
- Appuyez sur Alt + F11 pour ouvrir l’éditeur VBA.
- Allez dans Insertion > Module pour ajouter un nouveau module.
- Collez le code ci-dessous dans la fenêtre du module.
2. Code VBA pour créer un graphique en chandeliers
Sub CreerGraphiqueChandeliers() ' Déclaration des variables Dim ws As Worksheet Dim graph As ChartObject Dim rangeData As Range ' Référence à la feuille active Set ws = ActiveSheet ' Définir la plage de données à partir de laquelle le graphique sera créé ' Exemple de données : les colonnes A (Date), B (Ouverture), C (Haut), D (Bas), E (Fermeture) Set rangeData = ws.Range("A1:E10") ' Modifiez la plage selon vos données ' Création du graphique Set graph = ws.ChartObjects.Add(Left:=100, Width:=500, Top:=100, Height:=300) graph.Chart.SetSourceData Source:=rangeData ' Définir le type de graphique comme étant un graphique en chandeliers graph.Chart.ChartType = xlStockOHLC ' Utilisation du type de graphique OHLC (Open-High-Low-Close) ' Ajouter des titres pour chaque axe et le graphique graph.Chart.HasTitle = True graph.Chart.ChartTitle.Text = "Graphique en Chandeliers" ' Personnaliser l'axe des X (date) With graph.Chart.Axes(xlCategory) .CategoryNames = ws.Range("A2:A10") ' Plage des dates .TickLabelPosition = xlLow End With ' Personnaliser l'axe des Y (valeurs) With graph.Chart.Axes(xlValue) .MinimumScale = 0 ' Valeur minimale (peut être ajustée selon vos données) .MaximumScale = 100 ' Valeur maximale (peut être ajustée selon vos données) End With ' Personnaliser les couleurs des bougies With graph.Chart.SeriesCollection(1) .UpFill.ForeColor.RGB = RGB(0, 255, 0) ' Vert pour les bougies haussières .DownFill.ForeColor.RGB = RGB(255, 0, 0) ' Rouge pour les bougies baissières .Border.Color = RGB(0, 0, 0) ' Bordure noire End With ' Afficher la légende (si nécessaire) graph.Chart.HasLegend = False End Sub
3. Explication du Code
1. Déclaration des variables :
- ws fait référence à la feuille de calcul active.
- graph est l’objet qui contiendra le graphique créé.
- rangeData fait référence à la plage de données que nous utiliserons pour créer le graphique.
2. Plage de données :
- Le graphique en chandeliers nécessite quatre types de données :
- Ouverture (Open)
- Haut (High)
- Bas (Low)
- Fermeture (Close)
- Dans cet exemple, les données sont dans les colonnes A à E, de la ligne 1 à la ligne 10 (A1:E10). Vous pouvez ajuster cette plage selon vos besoins.
3. Création du graphique :
- Le graphique est créé avec la méthode ChartObjects.Add. Cela ajoute un graphique dans la feuille de calcul active.
- SetSourceData Source:=rangeData définit la plage de données pour le graphique.
4. Type de graphique :
- Le graphique est défini comme étant un graphique en chandeliers avec xlStockOHLC.
5. Personnalisation des axes :
- L’axe des catégories (en X) représente les dates. Le code CategoryNames définit ces dates comme étant la colonne A (A2:A10).
- L’axe des valeurs (en Y) est configuré avec des valeurs minimum et maximum.
6. Personnalisation des couleurs :
- Les bougies haussières (prix de clôture > prix d’ouverture) sont coloriées en vert, tandis que les bougies baissières sont coloriées en rouge.
- La bordure des bougies est définie en noir.
7. Affichage de la légende :
- La légende du graphique est désactivée avec HasLegend = False. Vous pouvez la réactiver si nécessaire.
4. Utilisation du Code
- Après avoir collé le code, vous pouvez l’exécuter en appuyant sur F5 dans l’éditeur VBA, ou bien vous pouvez créer un bouton dans votre feuille Excel et lier ce bouton à cette macro.
- Une fois que vous exécutez le code, un graphique en chandeliers sera généré sur la feuille active en utilisant les données spécifiées dans la plage.
5. Exemple de données
Voici un exemple de données que vous pouvez utiliser pour tester le code :
Date | Ouverture | Haut | Bas | Fermeture |
01/12/2024 | 100 | 105 | 98 | 102 |
02/12/2024 | 102 | 106 | 100 | 104 |
03/12/2024 | 104 | 108 | 103 | 107 |
04/12/2024 | 107 | 110 | 106 | 109 |
05/12/2024 | 109 | 111 | 108 | 110 |
N’oubliez pas de modifier la plage de données dans le code pour qu’elle corresponde à la vôtre.
Conclusion
Ce code crée un graphique en chandeliers de manière simple et personnalisable. Vous pouvez ajuster les plages de données, les couleurs, et d’autres paramètres pour l’adapter à vos besoins.