There are a few possibilities here that it could be. We are going to need to run a few tests to see what is going on. Don't worry... these tests are really easy! I can walk you through this diagnoses.
The first thing we need to do it check the battery with a voltmeter. A fully charged battery must have enough cranking capacity to provide the starter motor and ignition system with enough power to start the engine
over a broad range of ambient temperatures. Even if its charged, it could still be bad causing a no crank condition! I would rec to get it load tested at a shop or at a battery store. A battery load test will verify the actual cranking capability of the battery. This is the best test. Or you can take a voltmeter and put it on the battery and crank the engine over. (Be sure the battery has a full charge on it.) If the volts drop below 9.6, the battery is bad and needs to be replaced! Just be sure all cable connections are clean and tight. Not only at the battery, but on the starter, engine and frame! Positive side as well as the negative side.
If all checks out, make sure that you have battery voltage on both terminals of the starter when cranking. If full battery voltage (12.6 volts) is present and the starter is not working, then the starter is bad and will need to be replaced! Just be sure all fuses small regular and large size fuses are good under the hood, as well as inside the vehicle
The only other things left would be a bad neutral position switch, bad ignition switch or a wiring or connector problem.