Créer un graphe sans l'activer
Résolu
Jolie_Turandot
Messages postés
27
Statut
Membre
-
Jolie_Turandot Messages postés 27 Statut Membre -
Jolie_Turandot Messages postés 27 Statut Membre -
Bonjour,
J'aimerais créer un graphe sans l'activer en VBA.
Donc je m'interdis d'utiliser ActiveChart.truc. Comment faire ?
Mon code actuel est le suivant
Sub Graphe()
Sheets("TORONS").ChartObjects("REPRESENTATION").Activate
Q = 85
For j = 0 To UBound(MarqueurTravees)
Sheets("TORONS").Cells(Q, 15) = MarqueurTravees(j)
Sheets("TORONS").Cells(Q, 16) = 0
Q = Q + 1
Next j
With ActiveChart
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = Range(Sheets("TORONS").Cells(85, 15), Sheets("TORONS").Cells(Q - 1, 15))
.SeriesCollection(1).Values = Range(Sheets("TORONS").Cells(85, 16), Sheets("TORONS").Cells(Q - 1, 16))
.SeriesCollection(1).ChartType = xlXYScatter
.SeriesCollection(1).Format.Line.ForeColor.RGB = RGB(0, 0, 0)
.SeriesCollection(1).Select
With Selection
.MarkerStyle = 9
.MarkerSize = 36
End With
.SeriesCollection(1).Name = "Limite inférieure de la poutre"
.SeriesCollection.NewSeries
.SeriesCollection(2).XValues = Range(Sheets("TORONS").Cells(85, 5), Sheets("TORONS").Cells(R - 1, 5))
.SeriesCollection(2).Values = Range(Sheets("TORONS").Cells(85, 6), Sheets("TORONS").Cells(R - 1, 6))
.SeriesCollection(2).ChartType = xlXYScatterLinesNoMarkers
.SeriesCollection(2).Format.Line.ForeColor.RGB = RGB(0, 0, 255)
.SeriesCollection(2).Name = "Limite supérieure de la poutre"
.SeriesCollection.NewSeries
.SeriesCollection(3).XValues = Range(Sheets("TORONS").Cells(85, 5), Sheets("TORONS").Cells(R - 1, 5))
.SeriesCollection(3).Values = Range(Sheets("TORONS").Cells(85, 7), Sheets("TORONS").Cells(R - 1, 7))
.SeriesCollection(3).ChartType = xlXYScatterLinesNoMarkers
.SeriesCollection(3).Format.Line.ForeColor.RGB = RGB(0, 0, 255)
.SeriesCollection(3).Name ="Torons"
End Sub
Comment le transformer ?
Merci d'avance.
J'aimerais créer un graphe sans l'activer en VBA.
Donc je m'interdis d'utiliser ActiveChart.truc. Comment faire ?
Mon code actuel est le suivant
Sub Graphe()
Sheets("TORONS").ChartObjects("REPRESENTATION").Activate
Q = 85
For j = 0 To UBound(MarqueurTravees)
Sheets("TORONS").Cells(Q, 15) = MarqueurTravees(j)
Sheets("TORONS").Cells(Q, 16) = 0
Q = Q + 1
Next j
With ActiveChart
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = Range(Sheets("TORONS").Cells(85, 15), Sheets("TORONS").Cells(Q - 1, 15))
.SeriesCollection(1).Values = Range(Sheets("TORONS").Cells(85, 16), Sheets("TORONS").Cells(Q - 1, 16))
.SeriesCollection(1).ChartType = xlXYScatter
.SeriesCollection(1).Format.Line.ForeColor.RGB = RGB(0, 0, 0)
.SeriesCollection(1).Select
With Selection
.MarkerStyle = 9
.MarkerSize = 36
End With
.SeriesCollection(1).Name = "Limite inférieure de la poutre"
.SeriesCollection.NewSeries
.SeriesCollection(2).XValues = Range(Sheets("TORONS").Cells(85, 5), Sheets("TORONS").Cells(R - 1, 5))
.SeriesCollection(2).Values = Range(Sheets("TORONS").Cells(85, 6), Sheets("TORONS").Cells(R - 1, 6))
.SeriesCollection(2).ChartType = xlXYScatterLinesNoMarkers
.SeriesCollection(2).Format.Line.ForeColor.RGB = RGB(0, 0, 255)
.SeriesCollection(2).Name = "Limite supérieure de la poutre"
.SeriesCollection.NewSeries
.SeriesCollection(3).XValues = Range(Sheets("TORONS").Cells(85, 5), Sheets("TORONS").Cells(R - 1, 5))
.SeriesCollection(3).Values = Range(Sheets("TORONS").Cells(85, 7), Sheets("TORONS").Cells(R - 1, 7))
.SeriesCollection(3).ChartType = xlXYScatterLinesNoMarkers
.SeriesCollection(3).Format.Line.ForeColor.RGB = RGB(0, 0, 255)
.SeriesCollection(3).Name ="Torons"
End Sub
Comment le transformer ?
Merci d'avance.
2 réponses
-
Bonjour,
A essayer, l'objet se cree, mais je n'ai pas vos donneesSub Graphe() Dim Graph As ChartObject 'creation objet graph Set Graph = Sheets("TORONS").ChartObjects.Add(Range("D1").Left, Range("D1").Top, 200, 200) 'voir pour position du graph Graph.Name = "PRESENTATION" Q = 85 For j = 0 To UBound(MarqueurTravees) Sheets("TORONS").Cells(Q, 15) = MarqueurTravees(j) Sheets("TORONS").Cells(Q, 16) = 0 Q = Q + 1 Next j With Graph .SeriesCollection.NewSeries .SeriesCollection(1).XValues = Range(Sheets("TORONS").Cells(85, 15), Sheets("TORONS").Cells(Q - 1, 15)) .SeriesCollection(1).Values = Range(Sheets("TORONS").Cells(85, 16), Sheets("TORONS").Cells(Q - 1, 16)) .SeriesCollection(1).ChartType = xlXYScatter .SeriesCollection(1).Format.Line.ForeColor.RGB = RGB(0, 0, 0) .SeriesCollection(1).Select With Selection .MarkerStyle = 9 .MarkerSize = 36 End With .SeriesCollection(1).Name = "Limite inférieure de la poutre" .SeriesCollection.NewSeries .SeriesCollection(2).XValues = Range(Sheets("TORONS").Cells(85, 5), Sheets("TORONS").Cells(R - 1, 5)) .SeriesCollection(2).Values = Range(Sheets("TORONS").Cells(85, 6), Sheets("TORONS").Cells(R - 1, 6)) .SeriesCollection(2).ChartType = xlXYScatterLinesNoMarkers .SeriesCollection(2).Format.Line.ForeColor.RGB = RGB(0, 0, 255) .SeriesCollection(2).Name = "Limite supérieure de la poutre" .SeriesCollection.NewSeries .SeriesCollection(3).XValues = Range(Sheets("TORONS").Cells(85, 5), Sheets("TORONS").Cells(R - 1, 5)) .SeriesCollection(3).Values = Range(Sheets("TORONS").Cells(85, 7), Sheets("TORONS").Cells(R - 1, 7)) .SeriesCollection(3).ChartType = xlXYScatterLinesNoMarkers .SeriesCollection(3).Format.Line.ForeColor.RGB = RGB(0, 0, 255) .SeriesCollection(3).Name = "Torons" End With Set Graph = Nothing End Sub-
-
-
-
Bonjour,
On me demande un graphe sans utiliser ActiveChart. (le pourquoi est obscure pour moi aussi mais peu importe) et plutot quelque chose qui ressemble à ce qui me propose f894009.
J'aimerai savoir comment modifier mon code dans ce sens (les graphes ne sont vraiment pas ma tasse de thé sur VBA, je l'avoue).
Merci d'avance
-
-
Re,
ai oublie .Chart
avant:
With Graph
apres:
With Graph.Chart
par contre: Q ok, mais R .....???????
A+