.10/08/16
Buenas noches,
Dado que existen múltiples caminos para guardar un archivo y evitar protecciones en MS Excel, habría que considerar qué tan maliciosos son tus usuarios.
Si crees que no fueran a buscar infinidad de formas de grabarlo, una mejor opción que grisar botones (se puede usar Ctrl + G o F12, por ejemplo) es interceptar cualquier intento de grabar el archivo (eso incluye cuando TU quieras hacerlo, pero tiene solución)
Para hacerlo, activa el editor de Visual Basic (presiona Alt+F11) y busca la hoja que dice "ThisWorkbook" Da doble click sobre ella.
Copia el código siguiente y pégalo en el panel desplegado a la derecha de su Editor de Visual Basic:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "No debes grabar este archivo", vbCritical, ">>>>> NO GRABAR!!!"
Cancel = True
End Sub
O si quieres que se cierre al intentar grabarlo, usa esta otra:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "Este archivo no puede guardarse!" & Chr(10) & "Ahora se cerrará", vbCritical, "NO GRABAR"
Application.DisplayAlerts = False
ActiveWorkbook.Close False
End Sub
Cierra el editor de Visual Basic.
A partir de ahora, ante cualquier intento de grabar el archivo aparecerá un mensaje alertando al usuario que no es posible grabar el archivo y -de hecho- no lo hará.
Para más seguridad, oculta esta macro protegiendo el proyecto: Herramientas; Propiedades del VBAProject; pestaña "Protección" y colocale clave, para que no pueda verse ni editarse.
... PERO
Todo esto es muy eficiente siempre que, claro está, el usuario haya habilitado macros cuando MS Excel le avisó que los tenía, o cuando quiera que no funcione.
Si abrió sin habilitar macros todo lo anterior es inútil y el archivo podrá ser grabado.
(De hecho, esta es la solución para cuando tu quieras grabarlo)
Una solución alternativa es cambiarle -por fuera y con el archivo cerrado - las propiedades a tal archivo (con el Explorador de Windows) y configurarlo como "de Sólo lectura".
Este procedimiento es sencillo y tu usuario también puede hacer el camino contrario para convertirlo en "grabable" nuevamente.
Por ello, tu mejor opción aunque no infalible es grabar tu archivo como plantilla y asignarle una contraseña de grabación para que sólo quien la conozca pueda grabar el archivo. Esto sin perjuicio de que apliques todas las otras recomendaciones que te dí.
Espero haber sido claro.
Un abrazo
Fernando
.