Ir ao conteúdo
  • Cadastre-se

Excel Congelar Painéis somente em uma parte da planilha


Posts recomendados

Acredito ser possível fazer isso com ajuda de macros.

 

Você pode criar uma macro no evento SELECT, que dependendo da coluna selecionada, se ela for menor que X, congela 3 linhas, se ele for maior que Y, congela 5, se estiver no meio não congela nada. 

adicionado 39 minutos depois

Abra a planilha.

 

Tecle ALT + F11. Deve abrir a janela de desenvolvimento.

 

Na arvore de planilhas que aparece da coluna da esquerda do vídeo, dê um duplo-clique na planilha em questão.

 

Na janela grande, da direita, na parte superior há 2 campos de seleção. O primeiro está escrito (Geral); altere para WorkSheet.

 

O segundo campo deve ser SelectionChange.

 

Devem aparecer as 2 linhas abaixo:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

 

Incremente para que fique da seguinte forma:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Aux1 = Target.Column                        'Pega número da coluna

    ActiveWindow.FreezePanes = False            'Desliga o congelamento

    If Aux1 <= 10 Or Aux1 >= 20 Then            'Verifica se irá congelar

        Aux2 = Application.EnableEvents         'Guarda status dos eventos

        Application.EnableEvents = False        'Desabilita eventos

        If Aux1 <= 10 Then Range("A4").Select   'Prepara para congelar 3 linhas

        If Aux1 >= 20 Then Range("A6").Select   'Prepara para congelar 5 linhas

        ActiveWindow.FreezePanes = True         'Congela linhas

        Target.Select                           'Seleciona onde estava

        Application.EnableEvents = Aux2         'Restaura status dos eventos

    End If

End Sub

 

No exemplo acima serão congeladas 3 linhas sempre que a seleção estiver em célula da 1ª (A) à 10ª coluna (J). Para seleção entre as colunas 11ª (K) e 19ª (S), nada é congelado. A partir da coluna 20ª (T), serão congeladas 5 linhas.

 

Essa solução pode tornar a planilha lenta pois sempre que a seleção mudar, o procedimento será executado.

Teste pra ver se na planilha real, com uma utilização típica, ela não torna a planilha não usável.

 

Dá pra tentar otimizar a rotina guardando a quantidade de linhas atualmente congeladas em uma variável pública, e só recongelar se houver necessidade, mas teste antes pra ver se da forma acima te atende.

 

Jimmy 2

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...

Muito boa a sua solução, Jimmy2. Eu precisava de uma macro mesmo. No seu código o congelamento é feito de acordo com a célula selecionada.

Agora o ActiveWindow.FreezePanes é orientado para congelar o que está à esquerda e acima da célula selecionada.

No meu problema, eu preciso que o Excel congele, além do convencional (área da esquerda), o lado direito da planilha também, ou seja, o FreezePanes teria que congelar o que está à direita e acima da célula selecionada, ou algo similar.

Outro detalhe é fazer com que o Excel congele a região da esquerda e da direita independente da célula selecionada.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...