Voici votre fichier avec une façon de faire :
Sub Categories()
Set wf = Application
Set fparam = Sheets("Parameter")
With fparam.UsedRange
Set zone = .Resize(.Rows.Count - 1, .Columns.Count - 2).Offset(1, 2)
Set titre = .Rows(1).Resize(, .Columns.Count - 2).Offset(, 2)
Set bande = .Columns(1).Resize(.Rows.Count - 1, 1).Offset(1, 0)
End With
With Sheets("Rank")
dl = .Cells(.Rows.Count, 1).End(xlUp).Row
dc = .Cells(1, .Columns.Count).End(xlToLeft).Column
For k = 4 To 12 Step 2
ReDim t(1 To dl - 1)
For i = 2 To dl
t(i - 1) = wf.Index(zone, wf.Match(.Cells(i, k - 1).Value, bande, 1), wf.Match(.Cells(1, k - 1).Value, titre, 0))
Next i
.Cells(2, k).Resize(UBound(t), 1) = wf.Transpose(t)
Next k
End With
End Sub
Comme vous voyez, c'est bien plus chronophage pour une utilité, dans ce cas, limitée puisqu'on utilise les fonctions de feuilles pour parvenir à nos fins...
Cdlt,