Aqui está uma opção que reverterá o cabeçalho e o rodapé para valores que você determinar quando um usuário clicar em "Salvar". Essencialmente, o código VBA diz ao Excel para definir o conteúdo do cabeçalho e do rodapé para determinados critérios antes que o documento seja salvo.
Primeiro você precisa abrir o editor do VBA. Com sua pasta de trabalho aberta, pressione Alt + F11.
Cliqueduasvezesem"ThisWorkbook" à esquerda para abrir uma nova janela. Em seguida, basta copiar / colar as informações abaixo.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
With ws.PageSetup
'Replace the information after the equals sign with what you want.
.LeftHeader = ActiveSheet.Range("A100").Value
'.CenterHeader is the middle of the header. Put any text you want in quotes ""
.CenterHeader = "Header Text"
.RightHeader = ws.Name
.LeftFooter = ActiveWorkbook.Name
'To leave a section blank, just use two quotes like in .CenterFooter
.CenterFooter = ""
.RightFooter = Date & " " & Time
End With
Next ws
'No need to change any of the comments beginning with a '. These will not affect your code
End Sub
Neste exemplo, .CenterHeader="Texto do cabeçalho" irá reverter a seção do cabeçalho central para o que você digitar entre "".
ws.Name coloca o nome da planilha no rodapé esquerdo. ActiveWorkbook.Name coloca o nome do arquivo no rodapé esquerdo Data e amp; "" & A hora preenche a data e a hora no rodapé direito. Isso será atualizado com a data e a hora em que o usuário salva o documento.
Você pode colocar uma frase informando ao usuário que qualquer coisa inserida no cabeçalho / rodapé será perdida ao salvar e por favor usar a seção de anotações.
Infelizmente, não consegui encontrar nada para "bloquear" que o cabeçalho / rodapé fosse editado em primeiro lugar.