Option Explicit
Sub SousTotal()
Dim cel As Range, ref As Range, fin As Boolean
Set cel = Range("B:B").Find(What:="SOUS TOTAL", LookIn:=xlValues, LookAt:=xlPart)
If cel Is Nothing Then Exit Sub
1 Set ref = Range("B:B").Find("SOUS TOTAL", After:=cel)
If ref.Row <= cel.Row Then Set ref = Range("B65536").End(xlUp)(2): fin = True
cel.Offset(, 1) = Format(Application.Sum(Range(cel, ref.Offset(-1)).Offset(, 1)) - cel.Offset(, 1), "###0.00")
cel.Offset(, 2) = Format(Application.Sum(Range(cel, ref.Offset(-1)).Offset(, 2)) - cel.Offset(, 2), ".000%;;")
If fin Then Exit Sub
Set cel = ref
GoTo 1
End Sub