[VBA] Définition de la source d'un graphique pour des données sur une autre feuille
Le
HD

Bonjour,
Je récupère un ensemble de données que je colle ensuite sur différentes
feuilles. J'ai ensuite une feuille contenant divers graphiques pour lesquels
je voudrais modifier la source pour reprendre mes données récupérées.
Comme mes données sont sur deux plages différentes j'utilise une union puis
la fonction address pour définir la source de données:
Workbooks(WkbCli).Activate
Sheets("Evol").Select
Range("B2").CurrentRegion.Select
Selection.Copy
Workbooks(WkbPaie).Activate
Sheets("DataGraph1").Select
Range("A1").Select
ActiveSheet.Paste
LastC = ActiveSheet.Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
LastR = ActiveSheet.Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Sheets("Graph").ChartObjects("Evol").SetSourceData
Source:=Union(Range(Cells(1, 1), Cells(LastR - 1, 1)), _
Range(Cells(1, LastC),
Cells(LastR - 1, LastC))).Address
Seulement j'ai un plantage sur cette dernière ligne et je ne vois pas
où est le problème
Vous remerciant d'avance pour votre aide,
Cordialement,
@+
HD
Je récupère un ensemble de données que je colle ensuite sur différentes
feuilles. J'ai ensuite une feuille contenant divers graphiques pour lesquels
je voudrais modifier la source pour reprendre mes données récupérées.
Comme mes données sont sur deux plages différentes j'utilise une union puis
la fonction address pour définir la source de données:
Workbooks(WkbCli).Activate
Sheets("Evol").Select
Range("B2").CurrentRegion.Select
Selection.Copy
Workbooks(WkbPaie).Activate
Sheets("DataGraph1").Select
Range("A1").Select
ActiveSheet.Paste
LastC = ActiveSheet.Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
LastR = ActiveSheet.Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
Sheets("Graph").ChartObjects("Evol").SetSourceData
Source:=Union(Range(Cells(1, 1), Cells(LastR - 1, 1)), _
Range(Cells(1, LastC),
Cells(LastR - 1, LastC))).Address
Seulement j'ai un plantage sur cette dernière ligne et je ne vois pas
où est le problème
Vous remerciant d'avance pour votre aide,
Cordialement,
@+
HD
Le paramètre "Source" doit être de type "Range".
Essaie :
Sheets("Graph").ChartObjects("Evol").SetSourceData
Source:=Union(Range(Cells(1, 1), Cells(LastR - 1, 1)), _
Range(Cells(1, LastC), Cells(LastR - 1, LastC)))
Cordialement.
Daniel
J'ai toujours la même erreur:
"Erreur d'exécution '438': Propriété ou méthode non gérée par cet objet"
@+
HD
Sheets("Graph").ChartObjects("Evol").Chart.SetSourceData
Source:=Union(Range(Cells(1, 1), Cells(LastR - 1, 1)), _
Range(Cells(1, LastC), Cells(LastR - 1, LastC)))
Daniel
il me fallait corriger ma ligne avec votre première information comme quoi
la source est de type Range et ne doit pas avoir Address à la fin.
Voici la solution :
ActiveChart.SetSourceData
Source:=Union(Range(Sheets("DataGraph1").Cells(1, 1),
Sheets("DataGraph1").Cells(LastR - 1, 1)), _
Range(Sheets("DataGraph1").Cells(1,
LastC), Sheets("DataGraph1").Cells(LastR - 1, LastC)))
Un grand MERCI pour votre aide.
@+
HD