Sub SomTemp()
Dim gab, derligdonnees%, t, tdep, a(), f As Worksheet, i%, n%, j%, p%
Set f = Sheets("Données")
derligdonnees = f.Range("B" & Rows.Count).End(xlUp).Row
t = f.Range("B3:H" & f.Range("B" & Rows.Count).End(xlUp).Row)
tdep = f.Range("O3:O" & f.Range("O" & Rows.Count).End(xlUp).Row)
Dim madate As String, madate2 As String, NbAns As Single
madate = 2016
madate2 = Sheets("France").Range("C1")
NbAns = madate2 - madate + 1 'Nombre d'années totales
ReDim a(1 To UBound(t), 1 To 3)
n = 1
For p = 1 To NbAns
For i = 1 To UBound(tdep)
For j = 1 To UBound(t)
If tdep(i, 1) = t(j, 5) Then
' a(n, 1) = Round(WorksheetFunction.SumIf(f.Range("F1:F" & derligdonnees), tdep(j, 1), f.Range("H1:H" & derligdonnees)), 2)
If Right(t(j, 1), 4) = madate Then
If a(p, 1) = "" Then a(p, 1) = 1: a(n, 1) = Right(t(j, 1), 4)
a(n, 2) = tdep(i, 1)
a(n, 3) = Round(WorksheetFunction.SumIfs(f.Range("h1:h" & derligdonnees), f.Range("f1:f" & derligdonnees), tdep(i, 1), f.Range("v1:v" & derligdonnees), Right(t(j, 1), 4)), 2)
n = n + 1
Exit For
End If
End If
Next j
Next i
madate = madate + 1
Next p
For i = 1 To UBound(a)
If a(i, 1) = 1 Then a(i, 1) = ""
Next i
f.Range("O30").Resize(n - 1, 3) = a
End Sub