Ocultar/mostrar linhas e colunas desnecessárias

Formulação do problema

Suponha que temos uma mesa com a qual temos que “dançar” todos os dias:

 

To whom the table seems small – mentally multiply it twenty times by area, adding a couple more blocks and two dozen large cities. 

A tarefa é remover temporariamente da tela linhas e colunas que são atualmente desnecessárias para o trabalho, ou seja, 

  • ocultar detalhes por mês, deixando apenas trimestres
  • ocultar totais por meses e trimestres, deixando apenas o total por meio ano
  • ocultar cidades desnecessárias no momento (trabalho em Moscou – por que devo ver São Petersburgo?), etc.

Na vida real, há um mar de exemplos dessas tabelas.

Método 1: ocultando linhas e colunas

O método, francamente, é primitivo e pouco conveniente, mas duas palavras podem ser ditas sobre ele. Quaisquer linhas ou colunas selecionadas anteriormente em uma planilha podem ser ocultadas clicando com o botão direito do mouse na coluna ou no cabeçalho da linha e selecionando o comando no menu de contexto Esconder (Ocultar):

 

Para exibição reversa, selecione as linhas/colunas adjacentes e, clicando com o botão direito do mouse, selecione no menu, respectivamente, exibição (Reexibir).

O problema é que você tem que lidar com cada coluna e linha individualmente, o que é inconveniente.

Método 2. Agrupamento

Se você selecionar várias linhas ou colunas e, em seguida, selecionar no menu Dados – Grupo e Estrutura – Grupo (Dados — Grupo e Esboço — Grupo), eles serão colocados entre colchetes (agrupados). Além disso, os grupos podem ser aninhados uns nos outros (são permitidos até 8 níveis de aninhamento):

Uma maneira mais conveniente e rápida é usar um atalho de teclado para agrupar linhas ou colunas pré-selecionadas. Alt+Shift+Seta para a direita, e para desagrupar Alt+Shift+Seta para a esquerda, Respectivamente.

Este método de ocultar dados desnecessários é muito mais conveniente – você pode clicar no botão com o “+ou-“, ou nos botões com um nível de agrupamento numérico no canto superior esquerdo da planilha – todos os grupos do nível desejado serão recolhidos ou expandidos de uma só vez.

Também, se sua tabela contém linhas ou colunas de resumo com a função de somar células vizinhas, ou seja, uma chance (não 100% verdadeira) que o Excel ele criará todos os grupos necessários na mesa com um movimento – através do menu Dados – Grupo e Estrutura – Criar Estrutura (Dados — Grupo e Esboço — Criar Esboço). Infelizmente, essa função funciona de forma muito imprevisível e às vezes faz um absurdo completo em tabelas complexas. Mas você pode tentar.

No Excel 2007 e mais recente, todas essas alegrias estão na guia Data (Encontro: Data) em grupo   Estrutura (Contorno):

Método 3. Ocultar linhas/colunas marcadas com uma macro

Este método é talvez o mais versátil. Vamos adicionar uma linha vazia e uma coluna vazia ao início de nossa planilha e marcar com qualquer ícone as linhas e colunas que queremos ocultar:

Agora vamos abrir o Editor do Visual Basic (ALT + F11), insira um novo módulo vazio em nosso livro (menu Inserir - Módulo) e copie o texto de duas macros simples para lá:

Sub Hide() Dim cell As Range Application.ScreenUpdating = False 'Desativa a atualização da tela para acelerar Para cada célula In ActiveSheet.UsedRange.Rows(1).Cells 'Itera sobre todas as células na primeira linha If cell.Value = "x " Then cell .EntireColumn.Hidden = True 'se estiver na célula x - ocultar a coluna Next For Each cell In ActiveSheet.UsedRange.Columns(1).Cells 'percorrer todas as células da primeira coluna If cell.Value = "x" Then cell.EntireRow.Hidden = Verdadeiro 'se estiver na célula x - oculta a linha Próxima Application.ScreenUpdating = Verdadeiro End Sub Sub Show() Columns.Hidden = Falso ' cancela todas as linhas e colunas ocultas Rows.Hidden = Falso End Sub  

Como você pode imaginar, a macro Esconder esconde e a macro Mostrar – Exibe linhas e colunas rotuladas de volta. Se desejado, macros podem ser atribuídas a teclas de atalho (Alt + F8 e o botão parâmetros), ou crie botões diretamente na planilha para iniciá-los na guia Desenvolvedor – Inserir – Botão (Desenvolvedor — Inserir — Botão).

Método 4. Ocultar linhas/colunas com uma determinada cor

Digamos que no exemplo acima, nós, ao contrário, queremos ocultar os totais, ou seja, linhas roxas e pretas e colunas amarelas e verdes. Em seguida, nossa macro anterior terá que ser ligeiramente modificada adicionando, em vez de verificar a presença de “x”, uma verificação para combinar a cor de preenchimento com células de amostra selecionadas aleatoriamente:

Sub HideByColor() Dim cell As Range Application.ScreenUpdating = False para cada célula em ActiveSheet.UsedRange.Rows(2).Cells If cell.Interior.Color = Range("F2").Interior.Color Then cell.EntireColumn.Hidden = True If cell.Interior.Color = Range("K2").Interior.Color Then cell.EntireColumn.Hidden = True Next para cada célula em ActiveSheet.UsedRange.Columns(2).Cells If cell.Interior.Color = Range ("D6").Interior.Color Then cell.EntireRow.Hidden = True If cell.Interior.Color = Range("B11").Interior.Color Then cell.EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

No entanto, não podemos esquecer de uma ressalva: essa macro só funciona se as células da tabela de origem foram preenchidas com cor manualmente, e não usando formatação condicional (esta é uma limitação da propriedade Interior.Color). Assim, por exemplo, se você destacou automaticamente todos os negócios em sua tabela em que o número é menor que 10 usando a formatação condicional:

Ocultar/mostrar linhas e colunas desnecessárias

… e você deseja ocultá-los em um movimento, a macro anterior terá que ser “concluída”. Se você tiver o Excel 2010-2013, poderá sair usando em vez da propriedade Interior propriedade DisplayFormat.Interior, que gera a cor da célula, independentemente de como ela foi definida. A macro para ocultar as linhas azuis pode ficar assim:

Sub HideByConditionalFormattingColor() Dim cell As Range Application.ScreenUpdating = False para cada célula em ActiveSheet.UsedRange.Columns(1).Cells If cell.DisplayFormat.Interior.Color = Range("G2").DisplayFormat.Interior.Color Then cell .EntireRow.Hidden = True Next Application.ScreenUpdating = True End Sub  

A célula G2 é tomada como amostra para comparação de cores. Infelizmente a propriedade Formato de exibição apareceu no Excel apenas a partir da versão 2010, portanto, se você tiver o Excel 2007 ou anterior, precisará encontrar outras maneiras.

  • O que é uma macro, onde inserir o código da macro, como usá-los
  • Agrupamento automático em listas de vários níveis

 

Deixe um comentário