This is weird...
Try to put a delay in instead of the MsgBox
Code:
'top of form
Private Declare Sub Sleep Lib "kernel32" (ByVal ms as Long)

'in your code instead of MsgBox
Sleep 1000 'wait 1 second
see what happens.