[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
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
DanielCo
Le #25796982
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
HD
Le #25796972
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
DanielCo
Le #25796962
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
HD
Le #25797042
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
Publicité
Poster une réponse
Anonyme