Ich vermute mal, dass irgend eine Frontendklasse mit der Bearbeitung nicht fertig kommt, bevor deine Funktion bereits aufgerufen wird. Im Debugger lässt du ihr die Zeit die sie braucht (um sich vielleicht zu öffnen) und das Ganze funktioniert.
Kann es sowas sein?
Versuch mal mit MsgBoxen den Ablauf ein wenig zu bremsen und herauszufinden, wo es hakt.