Sub charge()
Dim Ind As Integer ' Indice
Dim IndP As Integer ' Position de la particularité dans le tableau
Dim Lig As Long ' Ligne du tableau
Dim TvCel() As String ' Tableau des valeurs de la cellule
Dim TabP As New Collection ' Colelction (Tableau sans doublon) des particularités
Dim TabTot() As Single ' Tableau des sommes des valeurs
Dim Txt As String ' Concatenation des valeurs
Dim VCel As String ' Contenu de la cellule
Dim sPart As String ' Libellé de la particularité
Dim vPart As String ' Valeur de la particularité
Dim PosEspace As Integer ' Position de l'espace
ListView1.ListItems.Clear
With ListView1
.View = lvwReport
.FullRowSelect = True
'.Gridlines = True
For Lig = 1 To Sheets("Feuil1").Range("A" & Cells.Rows.Count).End(xlUp).Row
' Récupérer la valeur de la cellule
VCel = Trim(Sheets("Feuil1").Cells(Lig, 1))
' Créer le tableau des valeurs avec SPLIT (plus simple)
TvCel = Split(VCel, " - ")
For Ind = 0 To UBound(TvCel)
' Trouver l'espace séparant la valeur de al particularité
PosEspace = InStr(1, TvCel(Ind), " ")
' Mémoriser la valeur
vPart = Left(TvCel(Ind), PosEspace - 1)
' Mémoriser le texte de la particularité
sPart = Mid(TvCel(Ind), PosEspace + 1)
'
' Ajouter la particularité à la collection
On Error Resume Next
TabP.Add sPart, sPart
On Error GoTo 0
For IndP = 1 To TabP.Count
If TabP(IndP) = sPart Then Exit For
Next IndP
'
' Vérifier la dimension des valeurs avec celui de la collection
On Error Resume Next
If UBound(TabTot) < TabP.Count Then
' Redimensionner d'une ligne
ReDim Preserve TabTot(TabP.Count)
End If
On Error GoTo 0
' Totaliser la valeur de la particularité
TabTot(IndP - 1) = TabTot(IndP - 1) + Val(vPart)
Next Ind
' Ajouter l'item
.ListItems.Add , , VCel
'.ListItems(.ListItems.Count).ListSubItems.Add , , Sheets("Feuil1").Cells(Lig, 2)
Next Lig
Txt = ""
For IndP = 1 To TabP.Count
If Txt = "" Then
Txt = TabTot(IndP - 1) & " " & TabP(IndP)
Else
Txt = Txt & " / " & TabTot(IndP - 1) & " " & TabP(IndP)
End If
Next IndP
Me.TextBox1.Value = Txt
End With
End Sub