|
|
|
|
Bonjour
J'ai réussi à faire un graphique, mon code:
Sub creategraph()
Dim objChart As Chart, objRange As Range, MaSerie As Series
Set objRange = Worksheets("Valeur").Range(Worksheets("Valeur").Cells(1,2), Worksheets("Valeur").Cells(5,2))
Set objChart = ThisWorkook.Charts.Add
objChart.ChartType = xlLine
objChart.SeriesCollection.Add objRange, xlColumns, True, True
Set MaSerie = objChart.SeriesCollection.NewSeries
MaSerie.Values = "=" & objRange.Columns(2).Address(True, True, xlR1C1, True)
MaSerie.XValues = "=" & objRange.Columns(1).Adress(True, True, xlR1C1, True)
objChart.SetSourceData objRange, xlColumns
End Sub
Configuration: Windows XP Internet Explorer 6.0
Ok, cela fonctionne mais maintenant j'ai un autre problème voici la partie du code qui crée mes graphiques:
For i = 0 To 5 Step 1
If i = 0 Then colonnebase = 3
If i = 1 Then colonnebase = 7
If i = 2 Then colonnebase = 11
If i = 3 Then colonnebase = 15
If i = 4 Then colonnebase = 19
If i = 5 Then colonnebase = 23
Dim objRange As Range, SMesure As Series, SCible As Series, SLimiteinf As Series, SLimitesup As Series
Set objRange = Worksheets("Table").Range(Worksheets("Table").Cells(3, colonnebase), Worksheets("Table").Cells(l, colonnebase + 3))
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SeriesCollection.Add objRange, xlColumns, True, True
Set SMesure = ActiveChart.SeriesCollection.NewSeries
Set SCible = ActiveChart.SeriesCollection.NewSeries
Set SLimiteinf = ActiveChart.SeriesCollection.NewSeries
Set SLimitesup = ActiveChart.SeriesCollection.NewSeries
SMesure.Values = "=" & objRange.Columns(colonnebase).Address(True, True, xlR1C1, True)
SMesure.XValues = "=" & objRange.Columns(2).Address(True, True, xlR1C1, True)
SMesure.Name = "Mesures"
SCible.Values = "=" & objRange.Columns(colonnebase + 1).Address(True, True, xlR1C1, True)
SCible.XValues = "=" & objRange.Columns(2).Address(True, True, xlR1C1, True)
SCible.Name = "Cible"
SLimiteinf.Values = "=" & objRange.Columns(colonnebase + 2).Address(True, True, xlR1C1, True)
SLimiteinf.XValues = "=" & objRange.Columns(2).Address(True, True, xlR1C1, True)
SLimiteinf.Name = "Limite inférieure"
SLimitesup.Values = "=" & objRange.Columns(colonnebase + 3).Address(True, True, xlR1C1, True)
SLimitesup.XValues = "=" & objRange.Columns(2).Address(True, True, xlR1C1, True)
SLimitesup.Name = "Limite supérieure"
ActiveChart.SetSourceData objRange, xlColumns
ActiveChart.Name = paramètres(i)
Next i
Le graphique est correctement affiché, l'axe des ordonnées aussi mais pas l'axe des abscisses. Sachant que: - La zone des valeurs pour l'abscisse ne contient pas des valeurs chiffré mais des chaînes de caractères - Cette zone n'est pas forcément contigue avec celle des données Au lieu des chaînes de caractères, le graphique affiche pour l'axe des abscisses 1,2,.... Où es-je fais une erreur dans le code ? Merci d'avance Seules les forces obscures peuvent ouvrir et fermer les portes de Silent Hill |