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

Signaler
Messages postés
25
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
13 novembre 2012
-
Messages postés
25
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
13 novembre 2012
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
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)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
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
Messages postés
25
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
13 novembre 2012

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
Messages postés
25
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
13 novembre 2012

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
Messages postés
25
Date d'inscription
mardi 18 août 2009
Statut
Membre
Dernière intervention
13 novembre 2012

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