Home › Forums › Microsoft Project Discussion Forum › Any way to make a view read only?
I am trying to get some commonality between projects in a programme with some common views, but the company I am working for only have Project 2016 standard.
So if I build a view (with a supporting table, filter and Group by) and copy into a project this works fine until the user then removes the filter and/or group settings – after this point the view is worthless!
For some users I have started putting macros in and custom toolbars so they click the toolbar button and not the view, but is there any other way of doing this with Project Standard? – or am I going to have to write a module and create custom toolbar and get them to install it?
No I can’t get them to upgrade before anybody suggests that!
Windows 10 / Project 2016 Standard
I could start with a question of how often a PM deletes a filter, but I assume that to be an example only. Without Project Server there really isn’t a simple way to lock a view. But, one thought to consider that has two parts:
1. Have all your PMs save the views, filters, groups, etc. in their global instead of just in their project. That way they get copied, but if they get deleted then Project just copies it back again next time it is accessed.
— Now, I realize that doesn’t solve the problem of someone changing a view/filter/whatever —
2. A next step might be to create a macro that executes on open that deletes the associated views, filters, groups from the project. That way, in combination with step one, the project will always start with the standard items.
I’m not a VBA/Macro expert so I can’t help you much with that, but I think it will work assuming it can be done. Hope that helps…
Rob, I see the way to address this problem is by asking the “why’ question. Why are they deleting it? The answer will help to understand if the solution is more towards people’s behavior or Microsoft Project. Project standard or professional version doesn’t have the ability to lock views; though I like Larry’s solution about having them in Global.mpt. If it is to do with people’s behavior, training them on the benefit of the new views and tables will help them to know how to use it
Who said anything about deleting? I said ‘remove’as in remove from that view? The view remains but rather than click on another view they have either changed the filter to something else or set it to no filter, same with the group by option.
OK Macro’s it is then, as even with education it is too easy to just change a filter and a macro will at least re set that.
Should have also added like the idea from Larry of using the macro to re-load the Global copy as that makes the macro easier in terms of what parameters a user may have changed. As second guessing what a user may have changed to then build the code to fix it could have many options, while reverting to global is simpler code 🙂
Thanks for sharing this Rob. I had a question about the macro. “Timeline POAP” view should be present in Global.MPT in all machines otherwise this macro will fail or is everyone using the same computer for planning.
For info Macro code to copy a view from Global into Active Project if anybody else is interested.
‘ Macro Update_POAP_View
‘ Macro by Rob Clarke
Dim FullFileName As String
FullFileName = ActiveProject + “.mpp”
ViewApplyEx Name:=”&Gantt Chart”, ApplyTo:=0
Application.DisplayAlerts = False
OrganizerMoveItem Type:=0, FileName:=”Global.MPT”, ToFileName:=FullFileName, Name:=”Timeline POAP”
ViewApplyEx Name:=”Timeline POAP”, ApplyTo:=0
Hi Sai, Yeah I do need to get the View (and module) into each local machine, My plan was to send out a file with the View/Module in and provide instructions to Copy the Module into their Global. Then get them to load a custom toolbar. on the Toolbar will be an update view button which will then run a macro that will pull any required views/filters/tables/groups/fields/modules into the global thus either updating what is there or adding new. This can then be used going forward if I have updated the views/filters etc they just need to hit the update button. I can also use this to refresh the module code as well.
well that is the plan!