Bonsoir,
un code qui fonctionne avec le tableau de l'exemple :
Sub Transposition()
Dim TabloS(), TabloR(), Client, Cpt, Chrono
TabloS = Range("A1:E4")
Cpt = 1
Client = ""
For i = 2 To UBound(TabloS)
If TabloS(i, 2) <> Client Then
Chrono = 0
Client = TabloS(i, 2)
' ligne de désignatiuon de client
ReDim Preserve TabloR(1 To 6, 1 To Cpt + 1)
Cpt = Cpt + 1
TabloR(1, Cpt) = 0
TabloR(2, Cpt) = Client
TabloR(3, Cpt) = "CLI"
TabloR(4, Cpt) = "U"
TabloR(5, Cpt) = "Texte indifférent"
TabloR(6, Cpt) = TabloS(i, 1)
' première ligne de référence
ReDim Preserve TabloR(1 To 6, 1 To Cpt + 1)
Cpt = Cpt + 1
TabloR(1, Cpt) = 1
TabloR(2, Cpt) = TabloS(i, 4)
Chrono = Chrono + 1
TabloR(3, Cpt) = Chrono
TabloR(4, Cpt) = ""
TabloR(5, Cpt) = ""
TabloR(6, Cpt) = ""
Else
' ligne supplémentaire de référence
ReDim Preserve TabloR(1 To 6, 1 To Cpt + 1)
Cpt = Cpt + 1
TabloR(1, Cpt) = 1
TabloR(2, Cpt) = TabloS(i, 4)
Chrono = Chrono + 1
TabloR(3, Cpt) = Chrono
TabloR(4, Cpt) = ""
TabloR(5, Cpt) = ""
TabloR(6, Cpt) = ""
End If
Next i
Range("K1").Resize(UBound(TabloR, 2), UBound(TabloR, 1)) = Application.Transpose(TabloR)
End Sub
Le tableau final s'affiche sur la même feuille à partir de la cellule K1.
@ bientôt
LouReeD