Aide à la mise en forme d'un graphique sous VBA
Pablo988
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
borntobealive Messages postés 138 Date d'inscription Statut Membre Dernière intervention -
borntobealive Messages postés 138 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous,
Je me suis lancé de le VBA depuis peu et les graphiques me posent pas mal de problème dont un que je n'ai pas réussi à résoudre malgré mon ami Google.
J'essaie de faire une courbe avec deux aires (une verte et une rouge) sur le même graphique pour représenter une zone "stable" et l'autre "instable".
Sur l'image on voit à gauche ce que je veux et à droite ce que j'obtiens avec mon code VBA
Voici mon code
J'ai l'impression qu'il y a en quelque sorte 2 axes des abscisses et du coup ça pose problème.
j'ai essayé de contraindre l'axe comme cela :
Mais ça ne marche pas.
Avez-vous une petite idée ? Je remercie d'avance !!!
Pablo
Je me suis lancé de le VBA depuis peu et les graphiques me posent pas mal de problème dont un que je n'ai pas réussi à résoudre malgré mon ami Google.
J'essaie de faire une courbe avec deux aires (une verte et une rouge) sur le même graphique pour représenter une zone "stable" et l'autre "instable".
Sur l'image on voit à gauche ce que je veux et à droite ce que j'obtiens avec mon code VBA

Voici mon code
Function WsExist(Nom) As Boolean 'Teste si une feuille excel existe On Error Resume Next WsExist = Sheets(Nom).Index End Function Sub Macro2() Dim objChart As Chart, objRange As Range, MaSerie As Series, compteur As Long 'On supprime le graphique précédent s'il existe If WsExist("01") = True Then Application.DisplayAlerts = False Sheets("01").Delete Application.DisplayAlerts = True End If 'On créée le graphique et on le déplace à la fin Set objChart = Charts.Add ActiveChart.Name = "01" Sheets("01").Move After:=Sheets("GRAPH1") ThisWorkbook.Sheets(1).Activate With objChart 'Type de Graphique .ChartType = xlXYScatterSmoothNoMarkers 'Titre .HasTitle = True .ChartTitle.Text = "STABILITE" 'Séries de Données .SeriesCollection.NewSeries .SeriesCollection(1).XValues = Range("A15:A30") .SeriesCollection(1).Values = Range("D15:D30") .SeriesCollection.Add Range("B15:B30") .SeriesCollection.Add Range("C15:C30") 'Mise en forme des axes .Axes(xlCategory, xlPrimary).HasMajorGridlines = True .Axes(xlCategory, xlPrimary).HasTitle = True .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Submerged Rope Mass (kg/m)" .Axes(xlValue, xlPrimary).HasTitle = True .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Rope mass per unit length (kg/m)" .Axes(xlValue).MajorGridlines.Border.LineStyle = xlDot .ChartArea.Font.Size = 14 'On contraint l'axe des ordonnées .Axes(xlValue, xlPrimary).MinimumScale = 0 .Axes(xlValue, xlPrimary).MaximumScale = 30 End With 'Mise en forme première série : Courbe With objChart.SeriesCollection(1) .ChartType = xlXYScatterSmoothNoMarkers .AxisGroup = 1 With .Border .Weight = xlMedium .LineStyle = xlContinuous .ColorIndex = 23 End With .MarkerBackgroundColorIndex = 23 .MarkerForegroundColorIndex = 23 .MarkerStyle = xlSquare .MarkerSize = 5 End With 'Mise en forme des deux autres séries en Aires objChart.SeriesCollection(2).ChartType = xlAreaStacked objChart.SeriesCollection(3).ChartType = xlAreaStacked With objChart.SeriesCollection(2).Format.Fill .ForeColor.RGB = RGB(0, 176, 80) .Solid .Transparency = 0.7 End With With objChart.SeriesCollection(3).Format.Fill .ForeColor.RGB = RGB(255, 0, 0) .Solid .Transparency = 0.7 End With 'On active le graphique Sheets(3).Activate End Sub
J'ai l'impression qu'il y a en quelque sorte 2 axes des abscisses et du coup ça pose problème.
j'ai essayé de contraindre l'axe comme cela :
.Axes(xlCategory, xlPrimary).MinimumScale = 0 .Axes(xlCategory, xlPrimary).MaximumScale = 30
Mais ça ne marche pas.
Avez-vous une petite idée ? Je remercie d'avance !!!
Pablo
A voir également:
- Aide à la mise en forme d'un graphique sous VBA
- Mise en forme conditionnelle excel - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : - Guide
- Changer carte graphique - Guide
1 réponse
Slt Pablo,
Je crois que ton problème vient de tes election des aires. C'est des colonnes donc il n'y a pas "d'absisse" donc par défaut Excel doit prendre les numeros des cases.Comme tu veux graduer de 0 à 30 et que tes cases sont dans la même gamme ça doit être completement transparent en plus. essaye en rajoutant la colonne A:A dans tes selections de (2) et (3)
Je crois que ton problème vient de tes election des aires. C'est des colonnes donc il n'y a pas "d'absisse" donc par défaut Excel doit prendre les numeros des cases.Comme tu veux graduer de 0 à 30 et que tes cases sont dans la même gamme ça doit être completement transparent en plus. essaye en rajoutant la colonne A:A dans tes selections de (2) et (3)