Si habitualmente usáis una hoja (o cualquier archivo de Excel) para calcular datos y que además usan otros compañeros, es posible que no queráis que nadie haga cambios, modifique fórmulas o cambie formatos.
Pues bien, esta macro hace exactamente lo que os he comentado. Debéis pegar la macro en el objeto «Thisworkbook» de vuestro proyecto VBA. De forma que cuando quieran guardar, o guardar como, les aparecerá el cuadro de mensaje «LOS CAMBIOS NO SE GUARDARÁN» y no les permitirá el guardado.
Os dejo un ejemplo de una hoja denominada «CÁLCULO DE BENEFICIOS» y que solo sirve para calcular y no se deben guardar las modificaciones:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "LOS CAMBIOS NO SE GUARDARÁN", vbInformation, "CALCULO DE BENEFICIOS"
Cancel = True
End Sub
Si además deseáis que cuando cierren el programa, no surja el típico mensaje de «Desea guardar los cambios efectuados en Cálculo de Beneficios» y se cierre directamente, tan solo tenéis que agregar esta otra macro debajo de la anterior:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Close Savechanges:=False
End Sub
Por último, dado que se trata de una macro que no deja guardar cambios, os preguntaréis como vais a hacer para guardarla previamente en la hoja. Esto es sencillo, antes de pegar la macro, abrid la hoja de Excel de forma que no esté habilitada para macros, de esta forma podréis pegar la macro y guardarla. Luego solo tendréis que activar las macros y funcionará perfectamente.
Saludos 😉