Private Sub Worksheet_Activate()
Dim lig&, col%, ncol%, h&, w As Worksheet, P As Range, rc&
Application.ScreenUpdating = False
With ListObjects(1).Range
If .Rows.Count > 2 Then .Rows(3).Resize(.Rows.Count - 2).Delete xlUp 'RAZ
.Rows(2).Clear 'RAZ
lig = .Row
col = .Column
ncol = .Columns.Count
End With
h = 1
For Each w In Worksheets
If w.Name <> Me.Name And w.ListObjects.Count Then
Set P = Evaluate(w.ListObjects(1).Name) 'tableau sans les en-têtes
If Application.CountA(P) Then 'si le tableau n'est pas vide
rc = P.Rows.Count
ListObjects(1).Resize Cells(lig, col).Resize(h + rc, ncol) 'redimensionne le tableau
P.Copy Cells(lig + h, col) 'copier-coller
h = h + rc
End If
End If
Next
End Sub