Sub Totaliser()
Dim Plage As Range
Dim I As Long
Dim J As Long
Dim K As Long
With Worksheets("Feuille1")
'défini la plage à partir de A2 à I ?
Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 9).End(xlUp))
'tri croissant <-- obligatoire !
Plage.Sort Columns(4), 1
'commence à 1 pour éviter la ligne d'entêtes
J = 1
'commence aussi à 1 afin de pouvoir incrémenter "I" de 1 lors des totaux
For I = 1 To Plage.Rows.Count
K = K + Application.CountIf(Plage.Columns(4), Plage.Columns(4).Cells(I, 1))
'inscrit les sous-totaux les uns à la suite des autres
J = J + 1
'inscrit le nom du vendeur ou fournisseur ? en colonne J
.Cells(J, 10) = Plage.Columns(4).Cells(I, 1)
'et inscrit son total en colonne K
.Cells(J, 11) = Application.Sum(.Range("E" & I + 1 & ":E" & K + 1))
'saute au vendeur suivant
I = K
Next I
End With
End Sub