Three maybe fixes:
1/ after the loop, double-check that the file is still readable
2/ add a short sleep before and after 1/
3/ don't use the same filename each time (or maybe you're already not - I can't tell from the code you've given)
The technique of using a polling loop with a sleep inside it is one that Erel has used, so you're in good company.
A pattern such as this one can be used when you want to run multiple resumable subs concurrently and wait for all of them to complete before continuing: Dim status(1) As Int Test1(status) Test2(status) Test3(status) Do While status(0) < 3 Sleep(50) Loop...