Code 46 refers to either a faulty crank angle sensor or a faulty DFI....so for some reason or other when you crank the car over the ECU is not getting a signal which tells it to start firing the plugs. First thing I'd do is check all the wiring to the DFI which is under the coil packs - sometimes water can get in there and cause corrosion. If the car has been stalling when hot of late then I'd replace the CAS.
If the remote on the key works the battery will be OK.
Good Luck.