Créer un graphe sans l'activer

Résolu/Fermé
Jolie_Turandot Messages postés 26 Date d'inscription lundi 22 juillet 2013 Statut Membre Dernière intervention 11 septembre 2013 - 22 juil. 2013 à 17:33
Jolie_Turandot Messages postés 26 Date d'inscription lundi 22 juillet 2013 Statut Membre Dernière intervention 11 septembre 2013 - 23 juil. 2013 à 12:06
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.

A voir également:

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
23 juil. 2013 à 08:27
Bonjour,

A essayer, l'objet se cree, mais je n'ai pas vos donnees
Sub 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
1
Jolie_Turandot Messages postés 26 Date d'inscription lundi 22 juillet 2013 Statut Membre Dernière intervention 11 septembre 2013
23 juil. 2013 à 08:56
Merci de cette réponse !

J'ai cependant un problème : quand je relance la procédure, il y a une erreur au niveau de ".SeriesCollection.NewSeries". On me dit "propriété ou méthode non gérée par cet objet". Que faire ?

Merci d'avance.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
23 juil. 2013 à 09:58
Re,

Je vais tester en creant un graph bidon

A+
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
23 juil. 2013 à 10:43
Coucou,

je ne comprends pas ta question.
que veux tu dire quand tu dis que tu veux créer un graphe sans l'activer par VBA?
Pour moi, ce n'est pas clair.
Soit tu crées un graphe manuellement, soit tu passe par vba.
Quel est le pb?
0
Jolie_Turandot Messages postés 26 Date d'inscription lundi 22 juillet 2013 Statut Membre Dernière intervention 11 septembre 2013
23 juil. 2013 à 10:57
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
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 23/07/2013 à 11:02
Re,

ai oublie .Chart

avant:
With Graph


apres:
With Graph.Chart



par contre: Q ok, mais R .....???????

A+
1
Jolie_Turandot Messages postés 26 Date d'inscription lundi 22 juillet 2013 Statut Membre Dernière intervention 11 septembre 2013
Modifié par Jolie_Turandot le 23/07/2013 à 11:08
Une dernière chose : comment supprimer le graphe à l'essai suivant ?

(Le R est définit dans une autre procédure. Je n'ai posté q'un fragment de code).
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
23 juil. 2013 à 11:09
pour supprimer :

graph.chart.Delete

si ca ne marche pas, c'est
graph.Chart.Parent.Delete
0
Jolie_Turandot Messages postés 26 Date d'inscription lundi 22 juillet 2013 Statut Membre Dernière intervention 11 septembre 2013
Modifié par Jolie_Turandot le 23/07/2013 à 11:16
ça ne marche pas mais je pense savoir pourquoi. Il ne trouve pas le graphe à supprimer.

A quel endroit dois je mettre cette ligne de code ?
0
Jolie_Turandot Messages postés 26 Date d'inscription lundi 22 juillet 2013 Statut Membre Dernière intervention 11 septembre 2013
23 juil. 2013 à 11:41
Je ne comprend pas, ça ne marche nul part.... Faut-il préciser quelque chose avant cette commande ? La feuille ou un truc comme ça ?

Merci.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
23 juil. 2013 à 11:54
Re,

mettre au debut, apres l ligne Dim:

Sheets("TORONS").ChartObjects("PRESENTATION").Delete
0