Do not worry!
Since we are looping from row 4 to 58, if we find fail in row 4 and want to copy from 4 to 58, it is fine as long as one fail is found in row 4, what happens if there are fail in each row from 4 to 58? Why do you want to copy from row to 58? Why not each row at a time? Row 4 if fail is found, then if fail is found in row 5, we copy row 5 too, then test each row until 58 and go in to next sheet. What I do not understand is why do you want to loop from 4 to last row and yet you want to copy from the row fail find until the last row. I hope you see the logic with looping. You probably do not need to loop, use find and search function, when fail is found, you copy from the found row until last row. This even assumes that you do not want to search fail again on the sheet and copy again until the last row. You have the same problem as looping.
so, Think!
Bookmarks