Sub CopieGraph_UpdateSerie()
Const NOM_GRAPH_PAR_DEFAUT As String = "Collage"
'---
Dim S As Worksheet
Dim CH As Chart
Dim CH2 As Chart
Dim CO As ChartObject
Dim NbChartObject&
Dim Adresse$
Dim FeuilleSource$
'--- Si la séléction n'est pas un graphique, on sort ---
If TypeName(Selection) <> "ChartArea" Then
MsgBox "Veuillez sélectionner le graphique source"
Exit Sub
End If
'--- Le graphique source ---
Set CH = ActiveChart
Adresse$ = CH.Parent.TopLeftCell.Address
FeuilleSource$ = CH.Parent.Parent.Name
'--- Boucle sur toutes les feuilles hormis la feuille source ---
For Each S In ActiveWorkbook.Worksheets
CH.ChartArea.Copy 'copie du graphique source
If S.Name <> FeuilleSource$ Then 'la feuille source n'est pas prise en compte
'/// VERIFICATION ///
'--- S'il est déjà existant, Supprime le ChartObject ---
'--- ayant le nom NOM_GRAPH_PAR_DEFAUT ("Collage") ---
For Each CO In S.ChartObjects
If CO.Name = NOM_GRAPH_PAR_DEFAUT Then CO.Delete
Next CO
'--- Nombre de ChartObjets sur la feuille
NbChartObject& = S.ChartObjects.Count
'///////////////////
S.Paste Destination:=S.Range(Adresse$) 'colle le graphique
'--- Le nouveau graphique ---
Set CH2 = S.ChartObjects(NbChartObject& + 1).Chart
CH2.Parent.Name = NOM_GRAPH_PAR_DEFAUT 'on donne le nom par défaut au parent (ChartObject)
CH2.SeriesCollection(1).Delete 'supprime la série
S.[a1].CurrentRegion.Copy 'copie les données à partir de la cellule A1 (à adapter)
CH2.SeriesCollection.Paste 'crée une nouvelle série avec les données adéquates
'----------------------------
End If
Next S
'--- Vide le presse-papiers ---
Application.CutCopyMode = False
End Sub