Sub Consolider()
Dim ncol%, colref%, d As Object, tablo, resu(), i&, x$, n&, j%, lig&
ncol = 13 'nombre de colonnes du tableau source
colref = 9 'colonne I à étudier
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la cass est ignorée
tablo = [A1].CurrentRegion.Resize(, ncol) 'matrice, plus rapide
ReDim resu(1 To UBound(tablo), 1 To ncol)
For i = 1 To UBound(tablo)
x = Trim(tablo(i, colref))
If Not d.exists(x) Then
n = n + 1
d(x) = n 'mémorise la ligne
For j = 1 To ncol - 1
resu(n, j) = tablo(i, j)
Next j
End If
lig = d(x)
resu(lig, ncol) = resu(lig, ncol) + Val(Replace(tablo(i, ncol), ",", ".")) 'consolide
Next i
'---restitution---
With Sheets("Consolidation")
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
With .[A1] '1ère cellule de destination, à adapter
.Resize(n, ncol) = resu
.Offset(n).Resize(.Parent.Rows.Count - n - .Row + 1, ncol).ClearContents 'RAZ en dessous
End With
.Columns.AutoFit 'ajuste les largeurs
.Activate 'facultatif
End With
End Sub