Série de valeurs courbes en double
s
Bonjour,
J'ai mis en place un code VBA pour faire en automatique un graphique, j'ai des séries qui apparaissent en double, j'arrive pas à trouver l'origine sauriez vous d'où ça vient ? ( Série 10 à 17 et Moyenne de objectif rendement en gris)
Sub CreerGraphiqueDynamique()
Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long
Dim lastColumn As Long
Dim cht As ChartObject
' Spécifiez la feuille de calcul contenant les données
Set ws = ThisWorkbook.Sheets("Feuil1")
' Déterminez la dernière ligne non vide
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' Déterminez la dernière colonne non vide de la première ligne
lastColumn = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
' Vérifiez s'il y a suffisamment de données pour créer le graphique
If lastRow > 1 And lastColumn > 1 Then
' Spécifiez la plage de données dynamique
Set rng = ws.Range(ws.Cells(2, 1), ws.Cells(lastRow, lastColumn))
' Créez un nouvel objet graphique dans la feuille de calcul
Set cht = ws.ChartObjects.Add(Left:=100, Width:=300, Top:=100, Height:=200)
' Définissez la plage de données pour le graphique
cht.Chart.SetSourceData Source:=rng
' Ajoutez la première série de données en tant que courbe
cht.Chart.SeriesCollection.NewSeries
cht.Chart.SeriesCollection(1).ChartType = xlLine
cht.Chart.SeriesCollection(1).Format.Line.Weight = 3 ' Épaisseur de la ligne (en points)
cht.Chart.SeriesCollection(1).Format.Line.ForeColor.RGB = RGB(0, 0, 0) ' Couleur de la ligne (rouge)
cht.Chart.SeriesCollection(1).Name = ws.Cells(1, 2).Value ' Nom de la série de données de la colonne B
cht.Chart.SeriesCollection(1).Values = ws.Range(ws.Cells(2, 2), ws.Cells(lastRow, 2)) ' Valeurs de la colonne B
' Ajoutez la deuxième série de données en tant que courbe
cht.Chart.SeriesCollection.NewSeries
cht.Chart.SeriesCollection(2).ChartType = xlLine
cht.Chart.SeriesCollection(2).Format.Line.Weight = 3 ' Épaisseur de la ligne (en points)
cht.Chart.SeriesCollection(2).Format.Line.ForeColor.RGB = RGB(255, 0, 0) ' Couleur de la ligne (rouge)
cht.Chart.SeriesCollection(2).Name = ws.Cells(1, 3).Value ' Nom de la série de données de la colonne C
cht.Chart.SeriesCollection(2).Values = ws.Range(ws.Cells(2, 3), ws.Cells(lastRow, 3)) ' Valeurs de la colonne C
' Définissez les autres séries de données en tant qu'histogrammes
For i = 3 To lastColumn
cht.Chart.SeriesCollection.NewSeries
cht.Chart.SeriesCollection(i).ChartType = xlColumnStacked100
cht.Chart.SeriesCollection(i).Name = ws.Cells(1, i).Value ' Nom de la série de données
cht.Chart.SeriesCollection(i).Values = ws.Range(ws.Cells(2, i), ws.Cells(lastRow, i)) ' Valeurs de la série de données
Next i
' Facultatif : personnalisez le graphique selon vos besoins
With cht.Chart
.HasTitle = True
.ChartTitle.Text = "Exemple de graphique"
' Ajoutez d'autres personnalisations ici
End With
Else
MsgBox "Aucune donnée disponible pour créer le graphique.", vbInformation
End If
End Sub
s
Je me permets de répondre pour le faire remonter en haut du flux
bonjour,
sans fichier, c'est une supposition, avec "cht.Chart.SetSourceData Source:=rng", vous avez déjà vos séries, et puis vous les ajoutez une 2ième fois.