Sub XYZ()
Dim Res(), k&, dMin&
Dim m&, n&, g&, h&, j&, T1&, T2&, T3&, T4&, T5&
Const Y# = 684
Const xLow& = -10
Const xUp& = 10
dMin = 10000000
For m = xLow To xUp
T1 = m * 275 - Y
If T1 > 0 Then Call AddRes(Res, k, dMin, T1, m): Exit For
For n = xLow To xUp
T2 = T1 + n * 75
If T2 > 0 Then Call AddRes(Res, k, dMin, T2, m, n): Exit For
For g = xLow To xUp
T3 = T2 + g * 157
If T3 > 0 Then Call AddRes(Res, k, dMin, T3, m, n, g): Exit For
For h = xLow To xUp
T4 = T3 + h * 163
If T4 > 0 Then Call AddRes(Res, k, dMin, T4, m, n, g, h): Exit For
For j = xLow To xUp
T5 = T4 + j * 126
If T5 > 0 Then Call AddRes(Res, k, dMin, T5, m, n, g, h, j): Exit For
Next j
Next h
Next g
Next n
Next m
Range("A3:E3").Resize(k) = Res
End Sub
Private Sub AddRes(Res, k, dMin, ByVal d&, ByVal m&, Optional ByVal n& = 0, _
Optional ByVal g& = 0, Optional ByVal h& = 0, Optional ByVal j& = 0)
If d < dMin Then
ReDim Res(1 To 1000, 1 To 6)
dMin = d: k = 1
Res(k, 1) = m: Res(k, 2) = n: Res(k, 3) = g
Res(k, 4) = h: Res(k, 5) = j ': Res(k, 6) = d
ElseIf d = dMin Then
k = k + 1
Res(k, 1) = m: Res(k, 2) = n: Res(k, 3) = g
Res(k, 4) = h: Res(k, 5) = j ': Res(k, 6) = d
End If
End Sub