Your code seems to fall over when I gets to 10 so I changed it so that i only goes to 9 then I have modified it so that it uses a variant array which is a much better way of doing it because, VBA is very slow at accessing the worksheets. so if you did a loop accessing 1000 rows of data the subroutine would take a long time while doing it with variant arrays only takes milliseconds. SO this does the same as your code but uses variant arrays:
Sub test()
Dim i As Long, r As Long, c As Long
Dim inarr As Variant
inarr = Range(Cells(1, 1), Cells(9, 6))
r = 1: c = 1
For i = 1 To 9
If i <= 5 Then
inarrr(r, c).Value = "*"
r = r + 1
Else
c = c - 2
inarr(r, c).Value = "*"
r = r + 1
End If
c = c + 1
Next i
Range(Cells(1, 1), Cells(9, 6)) = inarr
End Sub