Congelar painéis usando VBA
Eu postei recentemente sobre painéis congelados no Excel, aqui está como você pode fazer isso usando o VBA:
Congelar linhas
Linhas ("1: 1"). Selecione ActiveWindow.FreezePanes = True
Congelar Colunas
Intervalo ("A: A"). Selecione ActiveWindow.FreezePanes = True
Congelar linhas e colunas
Intervalo ("B2"). Selecione ActiveWindow.FreezePanes = True
Descongelar painéis
ActiveWindow.FreezePanes = False
Forçar a pasta de trabalho a salvar sem congelar os painéis
O Excel nos permite controlar as coisas por meio de eventos. Este artigo não é uma discussão detalhada sobre o que são eventos ou seus recursos. Em vez disso, ele dá um exemplo de um evento WorkBook. Esses são eventos realizados no nível da pasta de trabalho, e não em uma planilha específica.
Por meio do VBA, podemos controlar o que acontece em certos eventos, como antes de imprimir ou antes de salvar. Um problema comum que enfrento é que várias pessoas com quem trabalho não gostam de arquivos com painéis congelados.
Portanto, neste artigo, reuniremos algum código que verificará se o Freeze Panes está ativado e, se estiver, não salvará o arquivo. Isso significa que eu tenho que salvá-lo sem congelar os painéis - mantendo meus colegas felizes !!
O mais importante sobre os eventos da pasta de trabalho é que eles devem ser salvos no local correto - no nível da pasta de trabalho.
Para acessar o nível da pasta de trabalho, siga as etapas abaixo:
1. Clique com o botão direito em uma pasta de trabalho do Excel - veja o código:
2. Isso trará:
3. Clique duas vezes em “Esta pasta de trabalho” e selecione “Pasta de trabalho” no primeiro menu suspenso do lado esquerdo:
Vemos que o valor no lado esquerdo agora mudou para “Open” - com algum código para o Workbook Open Event. Esse código nos permitirá determinar o que acontece quando a pasta de trabalho é aberta pela primeira vez.
No entanto, queremos controlar o que acontece quando salvamos a pasta de trabalho. Portanto, altere o menu suspenso à direita para “Antes de Salvar”. A tela agora ficará assim:
Agora inserimos o seguinte código após a declaração:
If ActiveWindow.FreezePanes = True Then MsgBox "Congelar painéis está ligado - Arquivo NÃO ESTÁ SALVO" Cancel = True End If
Para que o código completo agora se pareça com:
Private Sub Workbook_BeforeSave (ByVal SaveAsUI As Boolean, Cancel As Boolean) If ActiveWindow.FreezePanes = True Then MsgBox "Freeze Panes is on - File is NOT SAVED" Cancel = True End If End Sub
Agora salve o arquivo e ENTÃO ative os painéis de congelamento em qualquer janela. Então - RESAVE o arquivo. Uma caixa de mensagem aparecerá informando que “Congelar painéis” está ativado - e o arquivo não foi salvo.
Na verdade, o arquivo não será salvo até que o Freeze Panes seja removido.