It is almost always a bad cable. You want to leave it on auto, if you set the pc to anything else the router/switch can get confused and there is no way on these devices to set the rate other than auto.
Your problem is you assume that a cable is fine because it works on another device. What is far more likely is the other device can tolerate a cable that is slightly out of spec more than you pc.
The speed setting is all done with hardware checking voltages etc, there is no real software involved so if it is not a bad cable it leave a bad port in the pc. That can't be fixed other than using a add in board. It is extremely rare to get a bad port in a machine.
The cost to test and maybe fix a cable almost never is worth it unless it is very long or it is in the wall where it is hard to replace. Your cheapest option is going to be to buy a new cable. Note there are massive amounts of fake cable being sold, which could also be your problem if the cable you have is not a actual ethernet cable.
You want cables that are pure copper (no CCA) and have wire size 22-24 (no of that flat or thin cable that is so common). You need nothing real special cat5e can easily do 1gbit but if you can get cat6 cheap that is fine also but it will not run any better or faster than cat5e.