VBA - Sélectionner plage pour graphique

Le
Joner
Bonjour à tous

J'ai créé une macro qui sélectionne une plage variable et qui construit un
graphique avec ces données mais cela ne fonctionne pas.

Range("C1:D1").Select
Range(Selection, Selection.End(xlDown)).Select
Sheets.Add
ActiveSheet.Name = "graphique"
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D" &
[A65536].End(xlDown).Row).Select, PlotBy _ :=xlColumns

C'est la dernière ligne qui foire. J'arrive pas à écrire le code pour lui
dire que la source du graphique c'est les colonnes C et D jusqu'en bas
J'ai pourtant fait sélectionner la bonne plage aux deux premières lignes.

Quand j'emploie l'enregisteur de macro, il rédige la ligne suivante:
ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D568"),
PlotBy _ :=xlColumns

Donc chaque fois que ma plage change, les nouvelles lignes ne sont plus
prises en compte dans la source

Quelqu'un peut-il m'aider ?

Merci d'avance et bonne soirée
Vincent
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #4484481
bonjour Vincent,

enleve le .Select

ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D" &
[A65536].End(xlDown).Row).Select, PlotBy _ :=xlColumns

isabelle


Bonjour à tous

J'ai créé une macro qui sélectionne une plage variable et qui construit un
graphique avec ces données mais cela ne fonctionne pas.

Range("C1:D1").Select
Range(Selection, Selection.End(xlDown)).Select
Sheets.Add
ActiveSheet.Name = "graphique"
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D" &
[A65536].End(xlDown).Row).Select, PlotBy _ :=xlColumns

C'est la dernière ligne qui foire. J'arrive pas à écrire le code pour lui
dire que la source du graphique c'est les colonnes C et D jusqu'en bas...
J'ai pourtant fait sélectionner la bonne plage aux deux premières lignes.

Quand j'emploie l'enregisteur de macro, il rédige la ligne suivante:
ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D568"),
PlotBy _ :=xlColumns

Donc chaque fois que ma plage change, les nouvelles lignes ne sont plus
prises en compte dans la source...

Quelqu'un peut-il m'aider ?

Merci d'avance et bonne soirée
Vincent





FFO
Le #4484461
Salut Joner
Je te propose inspiré de ton code la modification suivante :

Range("C1:D1").Select
Range(Selection, Selection.End(xlDown)).Select
Sheets.Add
A = Range("C1:D" & [A65536].End(xlDown).Row).Address
ActiveSheet.Name = "graphique"
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("graphique").Range(A),
PlotBy:=xlColumns

Testé il fonctionne

Dis moi !!!!


Bonjour à tous

J'ai créé une macro qui sélectionne une plage variable et qui construit un
graphique avec ces données mais cela ne fonctionne pas.

Range("C1:D1").Select
Range(Selection, Selection.End(xlDown)).Select
Sheets.Add
ActiveSheet.Name = "graphique"
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D" &
[A65536].End(xlDown).Row).Select, PlotBy _ :=xlColumns

C'est la dernière ligne qui foire. J'arrive pas à écrire le code pour lui
dire que la source du graphique c'est les colonnes C et D jusqu'en bas...
J'ai pourtant fait sélectionner la bonne plage aux deux premières lignes.

Quand j'emploie l'enregisteur de macro, il rédige la ligne suivante:
ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D568"),
PlotBy _ :=xlColumns

Donc chaque fois que ma plage change, les nouvelles lignes ne sont plus
prises en compte dans la source...

Quelqu'un peut-il m'aider ?

Merci d'avance et bonne soirée
Vincent





FFO
Le #4484441
J'ai essayé le code avec la ligne fourni par le modeleur de macro et je
n'obtients pas le même résultat
Je pense que celà vient de de la partie "[A65536].End(xlDown)" qui ne veux
pas dire grand chose
A65536 est la dernière cellule du bas de la feuille collone A et
.End(XlDown) demande à aller plus bas (plus bas que le plus bas dur dur !!!)
N'est ce pas plutôt : "[A65536].End(xlUp)" qui demande lui de A65536 d'aller
à la première cellule pleine du haut

Dans cet esprit je te propose ce nouveau code :

Range("C1:D1").Select
Range(Selection, Selection.End(xlDown)).Select
Sheets.Add
A = Range([C1], [D65536].End(xlUp)).Address
ActiveSheet.Name = "graphique"
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("graphique").Range(A),
PlotBy:=xlColumns

Dis moi ce que tu en penses !!!!


Bonjour à tous

J'ai créé une macro qui sélectionne une plage variable et qui construit un
graphique avec ces données mais cela ne fonctionne pas.

Range("C1:D1").Select
Range(Selection, Selection.End(xlDown)).Select
Sheets.Add
ActiveSheet.Name = "graphique"
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D" &
[A65536].End(xlDown).Row).Select, PlotBy _ :=xlColumns

C'est la dernière ligne qui foire. J'arrive pas à écrire le code pour lui
dire que la source du graphique c'est les colonnes C et D jusqu'en bas...
J'ai pourtant fait sélectionner la bonne plage aux deux premières lignes.

Quand j'emploie l'enregisteur de macro, il rédige la ligne suivante:
ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D568"),
PlotBy _ :=xlColumns

Donc chaque fois que ma plage change, les nouvelles lignes ne sont plus
prises en compte dans la source...

Quelqu'un peut-il m'aider ?

Merci d'avance et bonne soirée
Vincent





JB
Le #4484201
Bonjour,

Création d'un graphique par VBA:

Sheets("graphique").ChartObjects.Delete
[C2].CurrentRegion.Select
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.Location Where:=xlLocationAsObject, Name:="graphique"

http://cjoint.com/?eBgxgBM5SW

Cordialement JB

On 26 avr, 17:40, Joner
Bonjour à tous

J'ai créé une macro qui sélectionne une plage variable et qui const ruit un
graphique avec ces données mais cela ne fonctionne pas.

Range("C1:D1").Select
Range(Selection, Selection.End(xlDown)).Select
Sheets.Add
ActiveSheet.Name = "graphique"
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D" &
[A65536].End(xlDown).Row).Select, PlotBy _ :=xlColumns

C'est la dernière ligne qui foire. J'arrive pas à écrire le code po ur lui
dire que la source du graphique c'est les colonnes C et D jusqu'en bas...
J'ai pourtant fait sélectionner la bonne plage aux deux premières lig nes.

Quand j'emploie l'enregisteur de macro, il rédige la ligne suivante:
ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D568"),
PlotBy _ :=xlColumns

Donc chaque fois que ma plage change, les nouvelles lignes ne sont plus
prises en compte dans la source...

Quelqu'un peut-il m'aider ?

Merci d'avance et bonne soirée
Vincent


Joner
Le #4483751
La solution de FFO marche à merveille... Je vous remercie tous pour votre
contribution. Vous êtes des stars!

A bientôt
Vincent


Bonjour à tous

J'ai créé une macro qui sélectionne une plage variable et qui construit un
graphique avec ces données mais cela ne fonctionne pas.

Range("C1:D1").Select
Range(Selection, Selection.End(xlDown)).Select
Sheets.Add
ActiveSheet.Name = "graphique"
Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D" &
[A65536].End(xlDown).Row).Select, PlotBy _ :=xlColumns

C'est la dernière ligne qui foire. J'arrive pas à écrire le code pour lui
dire que la source du graphique c'est les colonnes C et D jusqu'en bas...
J'ai pourtant fait sélectionner la bonne plage aux deux premières lignes.

Quand j'emploie l'enregisteur de macro, il rédige la ligne suivante:
ActiveChart.SetSourceData Source:=Sheets("Traitement").Range("C1:D568"),
PlotBy _ :=xlColumns

Donc chaque fois que ma plage change, les nouvelles lignes ne sont plus
prises en compte dans la source...

Quelqu'un peut-il m'aider ?

Merci d'avance et bonne soirée
Vincent





Publicité
Poster une réponse
Anonyme