Private Sub Worksheet_Activate()
Dim lig As Long, w As Worksheet, c As Range, i As Variant
lig = 3 '1ère ligne renseignée
Application.ScreenUpdating = False
On Error Resume Next 'si sur une feuille la colonne A est vide
Rows("3:" & Rows.Count).ClearContents 'RAZ
For Each w In Worksheets
If IsNumeric(w.Name) Then
For Each c In w.Range("A4:A" & Rows.Count).SpecialCells(xlCellTypeConstants)
i = Application.Match(c, [A:A], 0)
If IsError(i) Then
i = lig
Cells(i, 1).Resize(, 3) = c.Resize(, 3).Value
lig = lig + 1
End If
Cells(i, 4) = Cells(i, 4) + c.Offset(, 8)
Next
End If
Next
End Sub