Remember that when using the 737 your VNAV works with certain conditions only.
1. If you are on the ground, and can not engage VNAV, check whether your first waypoint is less than 5deg from your RWY heading, otherwise it will not engage on ground.
2. If you are in the air, and your VNAV is not engaging, make sure that you have completed and EXECuted your PERF INIT page. Post any messages the FMC might give here, I will check back.
In any case, you will need to ensure that you correctly calculated your plan fuel and your reserves, which obviously affect your ZWF and GW. Follow these steps on your PERF INIT:
1. Manual entry of ZWF.
2. Plan Fuel Entry
3. Reserves Entry
4. Trip/Crz Alt Entry
5. Crz Wind Entry
6. Cost Index
If you follow these steps in this exact order, you shouldn't have any trouble activating your VNAV, at least not when airborne. Also, since I don't know how familiar you are, it might seem obvious to state that you only complete your PERF INIT after you have confirmed your payload and fuel on board, but others have forgotten to do this in the correct order before
If all that has been completed (an it still isn't working, check that you, during your flight, also do as described). Make sure that your T/O is active when taking off, and your PFD shows N1 at first. Aprox. when reaching your transition altitude, you should see a yellow square below your altitude in your PFD, hit the button on your altimeter, then the warning should change to xxx - STD. NOW activate VNAV first, LNAV next and only then hit CMD engage.
Just post your outcome here, and tell us if it worked!