bonsoir,
Je ne répond qu'a la première question.
Cette macro doit être collée dans le module ThisWorkbook.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim i%, iGraph%
'On Error Resume Next
Application.ScreenUpdating = False
'Cette ligne doit être modifiée :
'If (Target.Column = 3 Or Target.Column = 1) And Target.Row > 1 And Target.Count = 1 And Target.Value <> "" Then
'Probablement de la manière suivante
If Target.Count = 1 And Target.Row > 1 And Target.Value <> "" Then
If (Target.Column = 3 Or Target.Column = 1) Then
For iGraph = 1 To Sh.ChartObjects.Count
Sh.ChartObjects(iGraph).Activate
ActiveChart.SeriesCollection(1).ApplyDataLabels Type:=xlDataLabelsShowLabel
'On Error GoTo 0
For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
ActiveChart.SeriesCollection(1).Points(i).DataLabel.Select
Selection.Interior.ColorIndex = 36
Selection.Font.Size = 9
Selection.Text = ActiveSheet.Cells(i + 1, 1)
ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = 4
Next i
Sh.ChartObjects(iGraph).Activate
For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = _
Sh.[COULEUR].Offset(0, Cells(i + 1, 3).Value).Interior.ColorIndex
'Il faudra probablement modifier la ligne précédente ou coder "en dur" ( Sh.[G1]... )
'car je ne suis pas certain qu'on puisse créer autant de range [COULEUR] que de feuille.
Next i
Next iGraph
End If
End If
Target.Select
End Sub
= >Ne pas oublier de supprimer la macro existante dans la feuille1
A+