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

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

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

4 réponses

Avatar
DanielCo
Bonjour,
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


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



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
Avatar
DanielCo
Oups.
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


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)))



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
Avatar
HD
J'ai trouvé la solution... parmi les essais que j'avais préalablement fait
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