Why have you included
Workbooks(Dir(Myfile)).RefreshAll
That seems unnecessary here

You should also stop all events and calculations before you start the loop and reset them after you the loop is completed