The approach you are taking seems quite complex if all you want to do is protect cells containing formulas.
Run a macro that identifies all the cells with formulas on the worksheet in question. If the cell contains a formula - lock the cell, if it doesn't contain a formula - unlock the cell. Then as a final step Protect (with a password) the whole worksheet.
As DerbyDad03 notes, you will have to protect the VB code so that the password is not visible, or else do the worksheet protection with password manually after running the macro to lock or unlock individual cells.
In either case users will be presented with a worksheet where they cannot change cells containing formulas and they will not be able to turn off the protection, as it requires a password.