It could be that the Office version is why you get variations in success. However, the root of the problem also seems to be that poorly written code balks in newer versions, thus it's not the version, it's the code. I'm seeing more and more of this lately. Put a break on your button code and step through it (usually F8) and watch your values, especially for variables. Don't forget that in order for a variable in a line of code to receive any value, that line has to be executed. It will not be assigned as long as you're on the line (it's highlighted IIRC).
Maybe you have declared your variables at the top of the module, but if you have we can't see that. If you haven't, it's bad form. Also not evident if your modules contain Option Explicit at the top, which they all should.
Lastly, always provide the error number and text in your posts. It helps narrow the focus of responses.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.