Private Sub Worksheet_Activate()
Worksheet_Change [A:A]
End Sub
Private Sub Worksheet_Change(ByVal R As Range)
Set R = Intersect(R, [A9].CurrentRegion.Columns(1))
If R Is Nothing Then Exit Sub
Dim x$, a(), mois%, w As Worksheet
For Each R In R 'si entrées ou effacement multiples
x = R
If x <> "" Then
ReDim a(1 To 12) 'tableau, plus rapide
For mois = 1 To 12
For Each w In Worksheets
If w.Name <> Me.Name And w.Name <> "Conges" Then _
a(mois) = a(mois) + Application.SumIf(w.Columns(1), x, w.Columns(2 + mois)) + Application.SumIf(w.Columns(1), x, w.Columns(14 + mois))
Next w, mois
R(1, 2).Resize(, 12) = a 'restitution
End If
Next
End Sub