Function SousTotal(PlageValeur As Range, PlageCrit As Range, ByVal ValeurCrit, PlageTitre As Range, ByVal ValeurTitre)
[LIST]
'PlageValeur => la Plage des valeurs à sommer
'PlageCrit => la plage des critères à prendre en compte
'ValeurCrit => la valeur du critère à retenir pour la somme
'PlageTitre => la plage des titres où se trouve l'intitulé de la ligne de la somme
'ValeurTitre => la valeur de l'intitulé qui repère une ligne à soustotal
[/LIST]
Dim i&, tot#, x
For i = PlageValeur.Rows.Count - 1 To 1 Step -1
If LCase(PlageTitre.Cells(i, 1)) <> LCase(ValeurTitre) Then
x = PlageCrit.Cells(i, 1).MergeArea(1, 1).Value
If LCase(x) = LCase(ValeurCrit) Then If IsNumeric(PlageValeur.Cells(i, 1)) Then tot = tot + PlageValeur.Cells(i, 1)
Else
Exit For
End If
Next i
SousTotal = tot
End Function