cousinhub a écrit :
Bonsoir,
Essaie avec ce code :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ChObj As ChartObject
Dim SerCol As Series
Dim LesSeries, LesLignes
Dim Cel As Range
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B1:BB1")) Is Nothing Then
LesSeries = Array("Cas_5", "Cas_6", "Cas_13")
LesLignes = Array(6, 7, 14)
Set ChObj = ActiveSheet.ChartObjects("Graphique 6")
For Each SerCol In ChObj.Chart.SeriesCollection
Set Cel = Range("$A$" & LesLignes(Application.Match(SerCol.Name, LesSeries, 0) - 1))
SerCol.Formula = "=SERIES('BILAN SEMAINE'!" & Cel.Address & ",'BILAN SEMAINE'!$B$1:$AA$1,'BILAN SEMAINE'!" & Cel.Offset(, Target.Column - 1).Address & ",1)"
Next SerCol
End If
Target.Select
End Sub
Bonne soirée
Bon, et bien j'ai été un peu vite...
Ton code copié dans la feuille jointe fonctionne, voir "projet.xls"
MAIS si j'essaie de l'adapter à une autre feuille, voir "template.xls" , ça plante sur cette ligne :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ChObj As ChartObject
Dim SerCol As Series
Dim LesSeries, LesLignes
Dim Cel As Range
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("B1:BA1")) Is Nothing Then
LesSeries = Array("Nbre_de_1e_Controles_OK", "Nbre_de_1e_Controles_NOK", "%_OK_1e_Controle")
LesLignes = Array(3, 4, 7)
Set ChObj = ActiveSheet.ChartObjects("Graphique 6")
For Each SerCol In ChObj.Chart.SeriesCollection
Set Cel = Range("$A$" & LesLignes(Application.Match(SerCol.Name, LesSeries, 0) - 1))
SerCol.Formula = "=SERIES('BILAN SEMAINE'!" & Cel.Address & ",'BILAN SEMAINE'!$B$1:$AA$1,'BILAN SEMAINE'!" & Cel.Offset(, Target.Column - 1).Address & ",1)"
Next SerCol
End If
Target.Select
End Sub
Apparemment un problème de séries, mais je n'arrive pas à debugger...
Donc, HELP à nouveau ... Désolé