Private Sub Worksheet_Activate()
Dim an1%, an2%, an3%, lig&, w As Worksheet, P As Range, h&
an1 = 2018: an2 = 2019: an3 = 2020 'années à adapter
lig = 8 '1ère ligne de restitution, à adapter
Application.ScreenUpdating = False
If FilterMode Then ShowAllData 'si la feuille est filtrée
Rows(lig & ":" & Rows.Count).Delete 'RAZ
For Each w In Worksheets
If w.Name <> Me.Name Then
If w.FilterMode Then w.ShowAllData 'si la feuille est filtrée
Set P = w.Range("B8:G" & w.Range("B" & w.Rows.Count).End(xlUp).Row)
If P.Row = 8 Then
h = P.Rows.Count
P.Resize(, 4).Copy Cells(lig, 2)
lig = lig + h
Union(P.Resize(, 3), P.Columns(5)).Copy Cells(lig, 2)
Cells(lig, 4).Resize(h).Replace an1, an2, xlPart
lig = lig + h
Union(P.Resize(, 3), P.Columns(6)).Copy Cells(lig, 2)
Cells(lig, 4).Resize(h).Replace an1, an3
lig = lig + h
End If
End If
Next
End Sub