I have done something like this:
give your sprites a couple of instant variables (I used ivMyPosX and ivMovingToX)
when you want sprite to move make ivMovingToX = ivMyPosX+400
start movement (ie bullet)
every 0.1 seconds
if sprite position.x >= ivMovingToX
stop bullet motion
set sprite.x = iVMovingToX (just incase it is slightly over)
if you need to move again then just add 400 to ivMovingToX and start the bullet again.
August 2015 - I misplaced a lot of links - I will try to find backups and repost. If You find a post that interests please reply to post with @rampackwobble and I will get a nudge!
If you find my posts useful please consider donating something to a local charity or to the http://www.mndassociation.org/