Sub Worksheet_Activate()
Dim DL%, L%, i%, Chaine$, Numéro
[A:C].Clear ' suppression colonnes A:C
Application.ScreenUpdating = False ' figeage écran
DL = Sheets("Source").Cells(Cells.Rows.Count, "A").End(xlUp).Row ' dernière ligne de la source
tablo = Sheets("Source").Range("A1:C" & DL).Value ' données source dans tableau
Range("A1:C" & DL) = Sheets("Source").Range("A1:C" & DL).Value ' copie données source dans feuille
[A:C].Resize(DL).Sort key1:=[B1], order1:=xlAscending, Header:=xlYes ' tri sur N°
[A:C].RemoveDuplicates Columns:=2, Header:=xlYes ' suppression doublons
[A:A].NumberFormat = "0" ' format correct pour Siret
DL = Cells(Cells.Rows.Count, "A").End(xlUp).Row ' dernière ligne de feuille
Range("A1:C" & DL).Borders.Weight = xlThin ' quadrillage
For L = 2 To DL ' pour toutes les lignes
Numéro = Cells(L, "B"): Cells(L, "C") = "": Chaine = "" ' mémorisation N°, et init variables
For i = 2 To UBound(tablo) ' pour toutes données de source
If tablo(i, 2) = Numéro Then Chaine = Chaine & tablo(i, 3) & Chr(10) ' si même N° on l'ajoute
Next i
Cells(L, "C").FormulaR1C1 = Mid(Chaine, 1, Len(Chaine) - 1) ' à la fin on range le résultat
Next L
[A:C].VerticalAlignment = xlCenter ' mise en forme vertical
[B:B].HorizontalAlignment = xlCenter ' et horizontal
End Sub