You are steadily increasing Cells(i - 1, 5).Value by + 0.01.
So, Cells(i - 1, 5).Value gets bigger. Hence, I am assuming that the line:
Do Until Cells(i, 5).Value <= Round(Worksheets("ABC").Range("C5").Value, 0)
should really be:
Do Until Cells(i, 5).Value >= Round(Worksheets("ABC").Range("C5").Value, 0)
Furthermore, you are forgetting to set the starting point correctly. If I understand the post correctly then the starting point should be Range("C4").Value.
The rounding is not necessary as you are using >= and not =. So, it doesn't matter if there is an exact match. It merely needs to pass the threshold given in Range("C5").
Finally, Cells(i, 5).Value will be always ="" (empty) when the check is run because your loop will set Cells(i, 5).Value only after the check to a certain value. Hence, you need to verify the row before Do Until Cells(i - 1, 5).Value...
Bringing it all together I am guessing that you are looking for the following:
Option Explicit
Sub tmpSO()
Dim i As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("ABC")
ws.Activate
i = ws.Range("C2").Value + 1
ws.Cells(i - 1, 5).Value2 = ws.Range("C4").Value2
Do Until ws.Cells(i - 1, 5).Value2 >= ws.Range("C5").Value2
ws.Cells(i, 5).Value = ws.Cells(i - 1, 5).Value + 0.01
i = i + 1
Loop
End Sub
>=instead of<=?