you can do it in hardware, but if you have a spare port pin, you save yourself $$$ by doing it in software.
If i<16, set enable pin to 0, else (i>=16), set enable pin to 1 (assuming you are using a low enable).
that's the do this, do that of the above example. Your if statement is outside of your i loop, so i should always be 0 by the time you get to it, unless you are breaking from that statement. your if statement needs to be embedded in the i loop statement to be effective.
if this is a 1 of project, and you have spare $$$, buy the or gate and do it in hardware. But if you want to do it right, do it in software and use the spare port pin. NOTE: the enable pin doesn't have to be of the same port as your decoder address bits, but it can be. The less hardware you use, the simpler, cheaper, and easier to troubleshoot your project becomes (assuming, of course, there's no micro... troubleshooting software becomes a magnitude of order harder than simple hardware), but real engineer's try to lessen the cost where possible, and it ups the reliability. *IF* there's already a micro involved, use its logic when and where possible. Why leave unused port pins and add hardware, when that's really what a micro is, flexible hardware.
added note: and if you're using the or gate, you're also using 4 port pins on the enable/disable function, where doing it inside the micro, you only use 1 and you free up the other 3 pins.