Function CA(tablo, mois)
Dim finmois As Date, a#(), i&
tablo = Intersect(tablo, tablo.Parent.UsedRange) 'matrice, plus rapide
mois = CDate("1 " & Replace(mois, "Total CA ", ""))
finmois = DateSerial(Year(mois), Month(mois) + 1, 0)
ReDim a(1 To UBound(tablo))
For i = 2 To UBound(tablo)
a(i) = tablo(i, 3) * (IIf(finmois < tablo(i, 2), finmois, tablo(i, 2)) - IIf(mois > tablo(i, 1), mois, tablo(i, 1)) + 1)
If a(i) < 0 Then a(i) = 0
Next
CA = Application.Sum(a)
End Function