I think you are on the right track. Dividing your macro up into smaller Sub's that you call could help in the trouble shooting of the code.
Sub MacroStartsHere()
CalledOne
CalledTwo
CalledThree
End Sub
Sub CalledOne()
MsgBox "First Sub is Done"
End Sub
Sub CalledTwo()
MsgBox "Second Sub is Done"
End Sub
Sub CalledThree()
MsgBox "Third Sub is Done"
End Sub
Now when the first Sub runs, in order, the subsequent Sub's will be called.
If the Sub's get out of control, in other words, many of them, you can highlight (for instance) CalledOne in the first Sub and then select Shift + F2 which will take you to that sub.
Bookmarks