Sub transfert_tableau()
nb_colonne_max = 8
Dim mon_nouveau_tableau As Variant
'définir le tableau source :
mon_tableau = Sheets(1).Range("A2:B" & Sheets(1).Range("B65536").End(xlUp).Row).Value
'définir le tableau cible (10000 car on ne connait pas le nombre de ligne max)
ReDim mon_nouveau_tableau(1 To 10000, 0 To nb_colonne_max) '( 0 = colonne titre)
ligne = 1
col = 1
dossier_actu = mon_tableau(1, 1)
mon_nouveau_tableau(1, 0) = dossier_actu
For i = LBound(mon_tableau) To UBound(mon_tableau) 'pour toutes les valeurs du tableau source
If mon_tableau(i, 1) = dossier_actu Then 'si le dossier de la ligne reste le meme...
If col = nb_colonne_max + 1 Then 'colonne max atteinte
col = 1
ligne = ligne + 1
mon_nouveau_tableau(ligne, 0) = dossier_actu
End If
mon_nouveau_tableau(ligne, col) = mon_tableau(i, 2)
col = col + 1
Else '...sinon changement de ligne
ligne = ligne + 1
col = 1
dossier_actu = mon_tableau(i, 1)
mon_nouveau_tableau(ligne, 0) = dossier_actu
mon_nouveau_tableau(ligne, col) = mon_tableau(i, 2)
col = col + 1
End If
Next
'restitution du tableau
Sheets(2).Range("A1:I10000") = mon_nouveau_tableau