Private Sub Worksheet_Activate()
Dim resu(), w As Worksheet, tablo, i&, n&
ReDim resu(1 To Rows.Count, 1 To 3)
For Each w In Worksheets
If w.Name <> Me.Name Then
tablo = w.UsedRange.Resize(, 3) 'matrice, plus rapide
For i = 2 To UBound(tablo)
If tablo(i, 1) <> "" Then n = n + 1: resu(n, 1) = tablo(i, 1)
If tablo(i, 2) <> "" Then n = n + 1: resu(n, 2) = tablo(i, 2)
If tablo(i, 3) <> "" Then n = n + 1: resu(n, 3) = tablo(i, 3)
Next
End If
Next
'---restitution---
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [A4] 'cellule à adapter
If n Then .Resize(n, 3) = resu
.Offset(n).Resize(Rows.Count - n - .Row + 1, 3).ClearContents 'RAZen dessous
End With
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub