Not sure exactly what is causing your failure, but I see some general room for improvement. First, you don't typically need to Select sheets or cells; if you know their names or addresses, just use those followed by the operation you wish to perform, instead of using the address to select and then operating on active or selected cells/sheets. Second, you can move all of your Dim statements above the loop. If each variable will not always be overwritten in subsequent loops, you can set them to null or 0, etc. depending on data type, at the top of each loop iteration (where you're currently dimming them all again). Perhaps most importantly, you should set calculation to manual and turn of screen updating. Currently, Excel is trying to redraw/recalculate over and over throughout your loop; MAJOR resource hog.
Warning, though, if you are the only one running this macro, you are probably safe to use the above method. However, if you are distributing this workbook, I'd recommend capturing the user's settings first, so you can set back on completion. Something like:
Bookmarks