What you describe is exactly what your code does. It does not loop infinitely, it's probably just very slow.
Why exactly do you need to do this?
See above for reasoning.
It's definitely looping I can see it going through my first sheet multiple times about 2 minutes apart and i have left it on for 10 min.
Anyway to have the code go through each sheet in the wb only once?