Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA - Sélectionner plage pour graphique

5 réponses
Avatar
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

5 réponses

Avatar
isabelle
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





Avatar
FFO
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





Avatar
FFO
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





Avatar
JB
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 wrote:
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


Avatar
Joner
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