Bonjour chti, laurent et didier dans l'ombre
Une autre approche par une double collection dictionary, inutile car je pense que laurent à trouver son bonheur, mais le boulot étant fait...
Public Sub vev2()
Dim valeur As Scripting.Dictionary
Dim nombre As Scripting.Dictionary
Dim i As Byte
Dim j As Integer
Dim n As Integer
Dim c As Range
Set valeur = New Scripting.Dictionary
Set nombre = New Scripting.Dictionary
j = 1
n = 1
For Each c In Range("c2:c1055")
On Error GoTo suite:
valeur.Add Left(c.Text, 2), c.Offset(0, 2).Value
Next c
For Each c In Range("c2:c1055")
On Error GoTo suite2:
nombre.Add Left(c.Text, 2), n
Next c
For i = 0 To valeur.Count - 1
Range("j" & j).Value = valeur.keys(i)
Range("k" & j).Value = valeur.Items(i)
Range("l" & j).Value = nombre.Items(i)
Range("m" & j).Value = valeur.Items(i) / nombre.Items(i)
j = j + 1
Next i
Exit Sub
suite:
valeur.item((Left(c.Text, 2))) = valeur.item((Left(c.Text, 2))) + c.Offset(0, 2).Value
Resume Next
suite2:
nombre.item((Left(c.Text, 2))) = nombre.item((Left(c.Text, 2))) + 1
Resume Next
End Sub
Jean- marie nos résultat différent : pour la plage horaire 5 : tu ne trouves que 2 valeurs pour un total de 45 au lieu de 3 valeurs pour un total de 67.5.
Je n'ai pas cherché a comprendre le pourquoi du comment .
Salut
Hervé