Private Sub Worksheet_Activate()
Dim CMax As Long, TFml() As String, RngF1 As Range, Données As Collection, _
SG As SsGr, L As Long, C As Long, TRés(), TLig()
CMax = Feuil1.UsedRange.Columns.Count
ReDim TFml(2 To CMax)
For C = 2 To CMax
With Feuil1.Cells(8, C)
If .HasFormula Then TFml(C) = .FormulaR1C1
End With: Next C
Set RngF1 = PlgUti(Feuil1.[A8])
Set RngF1 = RngF1.Resize(RngF1.Rows.Count - 1)
Set Données = Gigogne(TableUnique(RngF1, Feuil2.[A1], Feuil3.[A1]), 1)
ReDim TRés(1 To Données.Count, 1 To CMax)
For Each SG In Données
L = L + 1: TLig = SG.DonnéesDébut
For C = 1 To UBound(TLig): TRés(L, C) = TLig(C): Next C, SG
If L > RngF1.Rows.Count Then
RngF1.Rows(2).Resize(L - RngF1.Rows.Count).Insert xlShiftDown, xlFormatFromLeftOrAbove
End If
With RngF1.Resize(L, CMax)
.Value = TRés
For C = 2 To CMax
If TFml(C) <> "" Then .Columns(C).FormulaR1C1 = TFml(C)
Next C
End With
End Sub