VB: adresse de feuille

Fermé
fred - 4 juil. 2005 à 16:58
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 - 5 juil. 2005 à 10:59
salut à tous !!

g écrit le code suivant qui fixe la valeur des 3 séries traitées par un graphique sur une page "Retour"

Mais je desire mettre mon graph sur ma page "tableau", et je n'arrive pas à modifier mon code pour lui dire de ne plus prendre les valeurs dans la page active mais dans "Retour"

Voilà le code original:

Sub GRAPH_suivi_eco()
'
' GRAPH_suivi_eco Macro
' Macro enregistrée le 14/06/2005 par rieusset
'

ActiveSheet.ChartObjects("Graphique 5").Activate
ActiveChart.Axes(xlValue).Select
ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection(1).Values = Range("I4", Range("I1000").End(xlUp))
ActiveChart.SeriesCollection(2).Values = Range("J4", Range("J1000").End(xlUp))
ActiveChart.SeriesCollection(3).Values = Range("K4", Range("K1000").End(xlUp))

End Sub


g éssayé en mettant Sheets("Retour").Range(...) pour chaque série mais ça ne marche pas...
je sais que c pas bien compliqué mais je suis bloqué.

Si vous avez la réponse n'hésitez pas !!!
A voir également:
  • VB: adresse de feuille
  • Vb - Télécharger - Langages
  • Vb cable - Télécharger - Audio & Musique
  • Vb download - Télécharger - Langages
  • Vb runtime - Télécharger - Divers Utilitaires
  • Vb 2008 - Télécharger - Langages

6 réponses

Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
4 juil. 2005 à 22:29
Hello fred,

Dur, dur...
Je modifie couramment les SeriesCollection(n).Values, mais jamais en changeant de feuille. Et là, comme toi, je tombe sur un os, et j'aime pas ça.

D'où l'hypothèse suivante, qui ne me satisfait pas pour le moment.
A la création d'un graphique, Excel ne propose que deux solutions :
- soit loger le graphique dans la même feuille de calcul que celle où se trouvent les données,
- soit le loger dans une feuille graphique (Chart, pas WorkSheet).
Ce qui pourrait vouloir dire, dans ton cas, qu'Excel considère que les données sont à prendre forcément dans la feuille où se trouve le graphique.

Je vais continuer à creuser ce truc qui m'agace.
Si quelqu'un a des tuyaux sur la question, il est le bienvenu.
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
4 juil. 2005 à 23:00
Y'a un truc quelque part... A la main on y arrive, donc y'a forcément un moyen de le dire.
Je verrai ça demain.
0
Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 214
4 juil. 2005 à 23:09
salut Fred,

j'ai simplement créé ce code avec l'enregistreur de macro, et ça fonctionne chez moi...

ActiveChart.SeriesCollection(1).Values = "=Feuil1!R2C1:R2C4"
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
4 juil. 2005 à 23:21
Ok.
Et as-tu essayé la suite : dire que maintenant les données sont dans une autre feuille, avec une plage définie par un End(xlUp) ?
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
5 juil. 2005 à 08:07
Bonjour fred,

Voilà une proposition :
Sub GRAPH_suivi_eco()
  
  Dim Ligne As Long
  Ligne = Sheets("Tableau").Range("I1000").End(xlUp).Row
  ActiveSheet.ChartObjects("Graphique 5").Activate
  ActiveChart.SetSourceData Source:=Sheets("Tableau").Range("H4:K" & Ligne), PlotBy:=xlColumns

End Sub
En utilisant SetSourceData, je pense que ça marche. En tout cas, le test que je viens de faire fonctionne.
Dans la mesure où structure de la plage de données, en passant de la feuille "Retour" à "Tableau", est conservée, il n'y a pas besoin de redéfinir les SeriesCollection.

J'ai mis Range("H4:K" & Ligne), (H4 et non pas I4) pour mon test, car j'avais des étiquettes d'abscisses en colonne H, et les données en colonnes I, J, K, donc la plage source partait bien de H4. Tu adaptes...

Regarde si ça fait ce que tu veux. Pour moi ça a l'air OK.
0

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

Posez votre question
salut armojax!

g essayé ta proc c bon ça prend bien les données dans la bonne feuille. Par contre mes étiquettes sont dans la colonne A et mes ordonnées sont respectivement dans les colonnes I J et K j'arrive pas à écrire ma ligne source.
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
5 juil. 2005 à 10:39
OK. Donc, ta ligne devient :
ActiveChart.SetSourceData Source:=Sheets("Tableau").Range("A4:A" & Ligne & ", I4:K" & Ligne), PlotBy:=xlColumns
0
carrément ça marche nickel !!!

merci beaucoup armojax! g bossé sur un projet de tableau de bord pour la gestion de projet en batiment ces 4 derniers mois. Mon stage touche à sa fin et je voulais te remercier car sans ton aide précieuse et celle des autres programmeurs je serais jamais venu à bout des macros que je n'avais jamais manipulé avant.

Merci et bonne continuation. ;-)
0
Armojax Messages postés 1860 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 2 octobre 2024 1 528
5 juil. 2005 à 10:59
Bonne fin de stage, fred, et peut-être de bonnes vacances à suivre ?
Ajx.
0