[Déplacé VB6 --> VBA] Tracer 2 courbes sur un meme graphe

Résolu
ricouth Messages postés 25 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 13 novembre 2012 - 3 févr. 2010 à 21:30
ricouth Messages postés 25 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 13 novembre 2012 - 16 févr. 2010 à 22:38
Bonjour

Je désirerai mettre a jour un graphique qui comporte 2 courbes , celui-ci étant sur une feuille spécifique ,
ci joint le code que j'ai tapé , mais 1 seule courbe se dessine

Merci pour votre aide

Charts("Electricité").Select
ActiveChart.SetSourceData Source:=Range(Sheets("Données").Cells(7, 8), Sheets("Données").Cells((e + 6), 8))
ActiveChart.SetSourceData Source:=Range(Sheets("Données").Cells(7, 12), Sheets("Données").Cells((e + 6), 12))
ActiveChart.SeriesCollection(1).XValues = Range(Sheets("Données").Cells(7, 3), Sheets("Données").Cells((e + 6), 3))

5 réponses

cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
4 févr. 2010 à 13:35
Salut

Que vaut ta variable 'e' ?

La seconde ligne "SetSourceData" écrase la première, normal.
En enregistrant une macro pendant que tu le faisais à la main, tu aurais vu la syntaxe à utiliser :
ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range("A1:B6,E1:E6")
ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil2"
Donc, dans ton cas, essaye ça :
Dim sTemp As String
' Prépare la plage au format "A1:A6,E1:E6" 
sTemp = "H7:H" & Cstr(e + 6) & ",L7:L" & Cstr(e + 6)
' Assigne la plage depuis la feuille Données à la source
ActiveChart.SetSourceData Source:=Sheets("Données").Range(sTemp)
' Trace la courbe suir la feuille Electricité
ActiveChart.Location Where:=xlLocationAsObject, Name:="Electricité"


Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
4 févr. 2010 à 13:38
PS : Une variable nommée 'e' = très très mauvaise idée car le E représente la puissance de 10.
Utilise des variables typées et correctement nommées, exemple :
iLigne
'i' pour dire que tu l'as dimensionné en Integer (exemple)
'Ligne' pour être plus parlant
3
ricouth Messages postés 25 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 13 novembre 2012
16 févr. 2010 à 22:38
Bonjour


Voici un petit morceau de programme qui me pose souci, il est vrai que je suis débutant en visual

Je voudrais qu'à chaque nouvelle insertion à la ligne 21 :
que la case d23 soit egale a la case c23 multiplier par la reference absolue d'une cellule de la colonne C qui descend d'une case à chaque demande de c2->c3 puis c3->c4 etc

mon petit programme qui ne génére une erreur

Rows("21:21").Select
Selection.Insert Shift:=xlDown

Range("B23").Select
ActiveCell.Value = code_article
ActiveCell.Offset(0, 2).Select
ActiveCell.FormulaR1C1 = "=RC[-1]*(R"& i &"C)"

'i étant la valeur d'incrémentation

Merci d'avance
3
ricouth Messages postés 25 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 13 novembre 2012
5 févr. 2010 à 21:45
Merci

Pour les infos , et le petit morceau de programme , cela fonctionne trés bien.


Ps , était une varaible qui définissait le nombre de ligne a prendre en compte

Ricouth
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ricouth Messages postés 25 Date d'inscription mardi 18 août 2009 Statut Membre Dernière intervention 13 novembre 2012
11 févr. 2010 à 22:09
Bonjour


Voici un petit morceau de programme qui me pose souci, il est vrai que je suis débutant en visual

Je voudrais qu'à chaque nouvelle insertion de ligne :
que la case d23 soit egale a la case c23 multiplier par la reference absolue d'une cellule de la colonne C qui descend de 1 a chaque demande de c2->c3 puis c3->c4 etc

Rows("21:21").Select
Selection.Insert Shift:=xlDown

Range("B21").Select
ActiveCell.Value = code_article
ActiveCell.Offset(0, 2).Select
ActiveCell.FormulaR1C1 = "=RC[-1]*R2C3

Merci d'avance
0