Its all about the timing but I never used one but I bet if you don't plug it in till your ready to load it you'll have better luck.
And make sure you use the right driver for it.
It should load without hitting the reset button but you have to pick the board your using. If that don't work hold the reset hit upload as soon as the ide tells you its uploading let go of the reset button and it should load that way too.
If not you have to many virtual (CDC) serial / COM ports.
I've had that happen the com port would pop up com21 and the Ide wouldn't look for that port.
When I was playing with the Due under Linux, the big issue is knowing what com port it's connected too. I was able to basically redirect the output of any file to the suspected com/tty port in Linux to get the light to blink. Now, you know you have the right port.
The ATmega32u4 Arduino machines use two (2) different serial drivers: one for comms (e.g.' the Serial Monitor feature) - listed as "Arduino Micro(COMx])" and one for program uploads - listed (in Device manager, but only one at a time) as "Arduino Micro BootLoader(COMx). COMx is the same for both. They switch with a Reset button push/release. After the upload process, the driver reverts to the comms driver.
I uninstalled the Micro's drivers, re-installed them and then, as per the above sites instructions:
1. Press & hold the Micro's "Reset" button
2. Hit the "Upload" button in the IDE
3. Wait for the status bar to change from "Compiling" to "Uploading"
4. Release the "Reset" button.