Sub toto()
Dim oRegExp As Object, oMatches As Object, i&, j&, max As Byte
Set oRegExp = CreateObject("vbscript.regexp")
oRegExp.Global = True
oRegExp.Pattern = "[\.?!]"
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
If oRegExp.test(Range("A" & i).Value) Then
Set oMatches = oRegExp.Execute(Range("A" & i).Value)
max = oMatches.Count - 1
For j = max To 0 Step -1
If oMatches.Item(j).firstindex < 200 Then _
Range("C" & i).Value = Left(Range("A" & i).Value, oMatches.Item(j).firstindex + 1): Exit For
Next j
End If
Next i
End Sub