Tienes dos errores básicos:
a) Declaras Val1 como Integer mientras que tratas un acumulado que seguramente tiene decimales y que además puede superar el valor de 32767 que es el máximo positivo que admite un tipo entero.
b) Asignas a Val1 la cadena de formato que es un tipo String
Desconozco si la columna 14 existe, pero en cualquier caso prueba este código que es más correcto que el que tratas de utilizar.
Código:
Private Sub Calcular_Click()
Dim I as integer, Val1 As Double
Dim Formato As String
Pagos.Text = " "
Formato = "###,####.00"
if MsgBox("DESEA CALCULAR EL MONTO....", vbYesNo, "CALCULAR EL PAGO") = vbyes then
On Error Resume Next
For I = 0 To DBGrid1.ApproxCount - 1
DBGrid1.Row = I
Val1 = Val1 + val(DBGrid1.Columns(14))
Next I
Pagos.Text = Format(Val1, Formato)
Else
Unload Me
End If
Calcular.Enabled = False
End Sub
Espero que te resulte útil.
PD: Si la sentencia
val(DBGrid1.Columns(14)) no te devuelve el valor correcto del contenido de la columna 14, prueba a transformarlo en un tipo Double con
cDbl(DBGrid1.Columns(14))