1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| Option Explicit
'Ajouter la référence "Microsoft Scripting Runtime"
Sub SommeTempsParMatricule()
Dim Matricules As Dictionary
Dim Rsource
Dim ri As Integer
Set Matricules = New Dictionary
Rsource = Range("A2:A200")
Dim vals() As String
Dim vali As Integer
Dim val() As String
'Lecture des cellules
For ri = 1 To UBound(Rsource)
'Décodage des groupes Matricules/Temps
vals = Split(Rsource(ri, 1), "+")
For vali = 0 To UBound(vals)
'Séparation du temps et Matricule
val = Split(vals(vali), "/")
If Matricules.Exists(val(1)) Then
Matricules(val(1)) = CDbl(Matricules(val(1))) + Replace(val(2), ",", ".")
Else
Call Matricules.Add(val(1), Replace(val(2), ",", "."))
End If
Next vali
Next ri
'Ecriture du résultat
For ri = 0 To (Matricules.Count - 1)
Range("B" & ri + 2) = Matricules.Keys(ri)
Range("C" & ri + 2) = Replace(Matricules.Items(ri), ".", ",")
Next ri
End Sub |
Partager