Private Sub Worksheet_Activate()
Dim Dico As Dictionary, Communes() As Variant, FréqBus() As Variant, FréqIti() As Double, _
Le As Long, TNuC() As Long, NbComm As Long, NbOD As Long, C As Long, _
Ts() As Variant, N1 As Long, N2 As Long, Ls As Long
Communes = Feuil2.Range("G2:G" & Feuil2.[A65536].End(xlUp).Row).Value
Set Dico = DictionnArbo(Feuil2.[A2].Resize(UBound(Communes)))
FréqBus = Feuil3.Range("A3:Y" & Feuil3.[A65536].End(xlUp).Row - 1).Value
ReDim FréqIti(1 To UBound(FréqBus, 2) - 1)
ReDim Ts(1 To 60000, 1 To 29)
For Le = 1 To UBound(FréqBus)
TNuC = Dico(CStr(FréqBus(Le, 1))): NbComm = UBound(TNuC): NbOD = NbComm ^ 2
For C = 1 To UBound(FréqIti): FréqIti(C) = FréqBus(Le, C + 1) / NbOD: Next C
For N1 = 1 To NbComm: For N2 = 1 To NbComm
Ls = Ls + 1
Ts(Ls, 1) = FréqBus(Le, 1)
Ts(Ls, 2) = NbComm
Ts(Ls, 3) = NbOD
Ts(Ls, 4) = Communes(TNuC(N1), 1)
Ts(Ls, 5) = Communes(TNuC(N2), 1)
For C = 1 To UBound(FréqIti): Ts(Ls, 5 + C) = FréqIti(C): Next C
Next N2: Next N1
Next Le
Me.[A2:AC65536].ClearContents
Me.[A2].Resize(UBound(Ts, 1), UBound(Ts, 2)) = Ts
End Sub