I don't think using a timer is going to work for what you want to do. For a start 1/5 second is not 20ms , it is 200 ms. One thing to understand about the timer fuction in Excel is that it is not that accurate, it depends on all sort of things, but you will be lucky to get it within 100 of ms. The way to do what you want to do is to use the the "onchange" worksheet" event to detect when betangel update the data on your worksheet. So when the data arrives you copy it to the correct place.
Also As I told you before , when designing this sort of a system, try to minimise the calculations required, so don't move all the data down every time you update it. just add the data to the bottom with a counter. ( you have to count anyway). Then once every 10 iterations ( 2seconds) you can start again.
If you call this sub from the worksheeet onchange event it will copy the data down.
Put a 1 into AP1 to start with to initialise the count.
Sub twenty()
Dim outarr(1 To 1, 1 To 4) As Variant
inarr = Range("H45:H51")
cnt = Cells(42, 1)
If cnt = 10 Then
cnt = 1
End If
indi = 1
For i = 1 To 7 Step 2
outarr(1, indi) = inarr(i, 1)
indi = indi + 1
Next i
Application.EnableEvents = False
Range(Cells(cnt + 1, 38), Cells(cnt + 1, 41)) = outarr
cnt = cnt + 1
Cells(42, 1) = cnt
Application.EnableEvents = True
End Sub