See next code
Option Explicit
Sub Max_Treat1()
Dim ValMx As Single, ValS As Single
Const ValMi = 0.001
Const NbS = 100
Const DataWsN = "Data"
Dim Rlt As Single, ValR As Single, Val As Single
Application.ScreenUpdating = False
ValMx = [D13] + [D19]
ValS = (ValMx - ValMi) / NbS
' Clear data
Sheets(DataWsN).UsedRange.Offset(1, 0).ClearContents
Val = ValMi
Range("D25") = Val
Rlt = Range("Q27")
While Val < ValMx
If (Rlt < Range("q27")) Then
Rlt = Range("Q27")
ValR = Val
End If
' Record data
Sheets(DataWsN).Cells(Rows.Count, 1).End(3)(2, 1).Resize(1, 2) = Array(Val, Rlt)
Val = Val + ValS
Range("D25") = Val
Wend
Application.ScreenUpdating = True
MsgBox (" value for D25 is " & ValR & vbCrLf & _
" maxi for Q27 is " & Rlt)
End Sub
Bookmarks