Private Sub WorkSheet_Activate()
Dim tablo, ub&, j%, w As Worksheet, s&, i&, k%
With [B2].CurrentRegion 'à adapter
tablo = .Resize(, Worksheets.Count + 1) 'matrice, plus rapide, au moins 2 éléments
ub = UBound(tablo)
j = 1
For Each w In Worksheets
If w.Name <> Me.Name Then
j = j + 1
s = 0
tablo(1, j) = w.Name
For i = 2 To ub - 1
tablo(i, j) = Application.CountIf(w.UsedRange, tablo(i, 1))
s = s + tablo(i, j)
Next i
If ub > 1 Then tablo(ub, j) = s
End If
Next w
'---Total par ligne---
tablo(1, j + 1) = "Total"
For i = 2 To ub
s = 0
For k = 2 To j
s = s + tablo(i, k)
Next k
tablo(i, j + 1) = s
Next i
'---restitution---
.Resize(ub, j + 1) = tablo
.Columns(j + 2).Resize(, Columns.Count - .Column - j).ClearContents 'RAZ à droite
End With
End Sub