I'm trying to set a task to either be wholly complete by 1st Dec, if not then start after 1st Jan (i.e. don't start at all if it can't be completed by 1st Dec). I don't want to split the task.
Is there a way to do that?
Thanks in advance
Richard
In MSP, there is no general-purpose way to do that using automatic scheduling with traditional logical restraints, constraints and calendars.
It is easily done using targeted resource leveling. e.g. make a "December Blackout" task using resource "DBO" for the whole month of December (scheduled using constraint and no logic links). Give the task a priority of 1000. Also assign resource DBO for any tasks that must finish before or start after the blackout period. In Resource Leveling options, ensure that "Leveling can create splits in remaining work" is un-checked, then level the resource either manually or automatically.
You can always use manual-mode scheduling or leads/lags/constraints to manipulate dates as well. Aside from the fact that such techniques are trivial for the present question, they would in general be considered bad practice.
sorry no, this isn't possible. The closest you can get ins Tom's suggestion of a blackout sothat elements that aren't complete will be moved into January.
A way to be alerted to the issue when updating the plan is to set a deadline on the task to be completed by 30/11 so that the total slack will go to negative if it trespaces into December. This will give you a visual signal that you need to move the start into January.
If you have a number of these sorts of tasks you could use VBA to review the plan line by line for a flag indicating this logic needs to be applied to a specific line and the change can be made to the plan. You would need to flag the lines impacted and to manually run the code.