Seleção de Coordenadas

Você tem um monitor grande, mas as mesas com as quais trabalha são ainda maiores. E, olhando por cima da tela em busca das informações necessárias, sempre há a chance de “deslizar” os olhos para a próxima linha e olhar na direção errada. Conheço até pessoas que, para essas ocasiões, sempre mantêm perto de si uma régua de madeira para prendê-la na linha do monitor. Tecnologias do futuro! 

E se a linha e a coluna atuais forem destacadas quando a célula ativa se mover pela planilha? Um tipo de seleção de coordenadas como esta:

Melhor do que uma régua, certo?

Existem várias maneiras de complexidade variável para implementar isso. Cada método tem seus prós e contras. Vamos dar uma olhada neles em detalhes.

Método 1. Óbvio. Macro que destaca a linha e a coluna atuais

A maneira mais óbvia de resolver nosso problema “na testa” – precisamos de uma macro que rastreie a mudança na seleção na planilha e selecione toda a linha e coluna para a célula atual. Também é desejável poder habilitar e desabilitar esta função, se necessário, para que essa seleção em forma de cruz não nos impeça de inserir, por exemplo, fórmulas, mas só funcione quando examinarmos a lista em busca do necessário em formação. Isso nos leva às três macros (selecionar, habilitar e desabilitar) que precisarão ser adicionadas ao módulo de planilha.

Abra uma planilha com uma tabela na qual você deseja obter essa seleção de coordenadas. Clique com o botão direito do mouse na guia da planilha e selecione o comando no menu de contexto Texto original (Código fonte).A janela do Editor do Visual Basic deve ser aberta. Copie este texto dessas três macros para ele:

Dim Coord_Selection As Boolean 'Variável global para seleção on/off Sub Selection_On() 'Macro na seleção Coord_Selection = True End Sub Selection_Off() 'Macro off seleção Coord_Selection = False End Sub 'Procedimento principal que executa a seleção Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range If Target.Cells.Count > 1 Then Exit Sub 'se mais de 1 célula for selecionada, exit If Coord_Selection = False Then Exit Sub 'se a seleção estiver desativada, saia Application.ScreenUpdating = False Set WorkRange = Range (" A6:N300") 'endereço da faixa de trabalho dentro da qual a seleção é visível  

Altere o endereço do intervalo de trabalho para o seu próprio – é dentro desse intervalo que nossa seleção funcionará. Em seguida, feche o Editor do Visual Basic e retorne ao Excel.

Pressione o atalho do teclado ALT + F8para abrir uma janela com uma lista de macros disponíveis. Macro Seleção_Ligado, como você pode imaginar, inclui a seleção de coordenadas na planilha atual e a macro Seleção_Desligado – desliga. Na mesma janela, clicando no botão parâmetros (Opções) Você pode atribuir atalhos de teclado a essas macros para facilitar o lançamento.

Vantagens deste método:

  • relativa facilidade de implementação
  • seleção – a operação é inofensiva e não altera de forma alguma o conteúdo ou a formatação das células da planilha, tudo permanece como está

Contras deste método:

  • essa seleção não funciona corretamente se houver células mescladas na planilha – todas as linhas e colunas incluídas na união são selecionadas de uma só vez
  • se você pressionar acidentalmente a tecla Delete, não apenas a célula ativa será limpa, mas toda a área selecionada, ou seja, excluirá os dados de toda a linha e coluna

Método 2. Original. CELL + Função de Formatação Condicional

Este método, embora tenha algumas desvantagens, parece-me muito elegante. Para implementar algo usando apenas as ferramentas integradas do Excel, o mínimo de programação em VBA é acrobacia 😉

O método é baseado no uso da função CELL, que pode fornecer muitas informações diferentes sobre uma determinada célula – altura, largura, número de linha-coluna, formato de número, etc. Esta função tem dois argumentos:

  • uma palavra de código para o parâmetro, como "coluna" ou "linha"
  • o endereço da célula para a qual queremos determinar o valor deste parâmetro

O truque é que o segundo argumento é opcional. Se não for especificado, a célula ativa atual será usada.

O segundo componente desse método é a formatação condicional. Esse recurso extremamente útil do Excel permite formatar células automaticamente se elas atenderem às condições especificadas. Se combinarmos essas duas ideias em uma, obteremos o seguinte algoritmo para implementar nossa seleção de coordenadas por meio de formatação condicional:

  1. Selecionamos nossa tabela, ou seja, aquelas células nas quais a seleção de coordenadas deve ser exibida no futuro.
  2. No Excel 2003 e anteriores, abra o menu Formato – Formatação Condicional – Fórmula (Formato — Formatação Condicional — Fórmula). No Excel 2007 e mais recente - clique na guia Início (Home)botão Formatação Condicional - Criar Regra (Formatação Condicional - Criar Regra) e escolha o tipo de regra Use uma fórmula para determinar quais células formatar (Usar fórmula)
  3. Digite a fórmula para nossa seleção de coordenadas:

    =OU(CÉLULA(“linha”)=LINHA(A2),CÉLULA(“coluna”)=COLUNA(A2))

    =OU(CÉLULA(«linha»)=LINHA(A1),CÉLULA(«coluna»)=COLUNA(A1))

    Esta fórmula verifica se o número da coluna de cada célula na tabela é igual ao número da coluna da célula atual. Da mesma forma com colunas. Assim, apenas as células que tiverem um número de coluna ou um número de linha que corresponda à célula atual serão preenchidas. E esta é a seleção de coordenadas em forma de cruz que queremos obter.

  4. Clique no botão Quadro (Formato) e defina a cor de preenchimento.

Tudo está quase pronto, mas há uma nuance. O fato é que o Excel não considera uma mudança na seleção como uma mudança nos dados da planilha. E, como resultado, não aciona o recálculo de fórmulas e a recoloração da formatação condicional apenas quando a posição da célula ativa muda. Portanto, vamos adicionar uma macro simples ao módulo de planilha que fará isso. Clique com o botão direito do mouse na guia da planilha e selecione o comando no menu de contexto Texto original (Código fonte).A janela do Editor do Visual Basic deve ser aberta. Copie este texto desta macro simples para ela:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) ActiveCell.Calculate End Sub  

Agora, quando a seleção mudar, o processo de recalcular a fórmula com a função será iniciado CELL na formatação condicional e inundar a linha e a coluna atuais.

Vantagens deste método:

  • A formatação condicional não interrompe a formatação de tabela personalizada
  • Esta opção de seleção funciona corretamente com células mescladas.
  • Sem risco de excluir uma linha e uma coluna inteiras de dados em um clique acidental Apagar.
  • Macros são minimamente usadas

Contras deste método:

  • A fórmula para formatação condicional deve ser inserida manualmente.
  • Não há uma maneira rápida de ativar/desativar essa formatação – ela sempre é ativada até que a regra seja excluída.

Método 3. Ótimo. Formatação Condicional + Macros

Média dourada. Usamos o mecanismo para rastrear a seleção na planilha usando macros do método-1 e adicionamos realce seguro a ela usando formatação condicional do método-2.

Abra uma planilha com uma tabela na qual você deseja obter essa seleção de coordenadas. Clique com o botão direito do mouse na guia da planilha e selecione o comando no menu de contexto Texto original (Código fonte).A janela do Editor do Visual Basic deve ser aberta. Copie este texto dessas três macros para ele:

Dim Coord_Selection As Boolean Sub Selection_On() Coord_Selection = True End Sub Sub Selection_Off() Coord_Selection = False End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim WorkRange As Range, CrossRange As Range Set WorkRange = Range("A7:N300") 'адрес рабочего диапазона с таблицей If Target.Count > 1 Then Exit Sub If Coord_Selection = False Then WorkRange.FormatConditions.Delete Exit Sub End If Application.ScreenUpdating = False If Not Intersect(Target, WorkRange) Não é nada Então Set CrossRange = Intersect( WorkRange, Union(Target.EntireRow, Target.EntireColumn)) WorkRange.FormatConditions.Delete CrossRange.FormatConditions.Add Type:=xlExpression, Formula1:="=1" CrossRange.FormatConditions(1).Interior.ColorIndex = 33 Target.FormatConditions .Delete End If End Sub  

Não se esqueça de alterar o endereço do intervalo de trabalho para o endereço da sua tabela. Feche o Editor do Visual Basic e retorne ao Excel. Para usar as macros adicionadas, pressione o atalho de teclado ALT + F8  e proceda da mesma forma que o método 1. 

Método 4. Bonito. Complemento FollowCellPointer

Excel MVP Jan Karel Pieterse da Holanda oferece um add-on gratuito em seu site SeguirCellPointer(36Kb), que resolve o mesmo problema desenhando linhas de seta gráficas usando macros para destacar a linha e a coluna atuais:

 

Bela solução. Não sem falhas em alguns lugares, mas definitivamente vale a pena tentar. Baixe o arquivo, descompacte-o em disco e instale o complemento:

  • no Excel 2003 e anteriores – através do menu Serviço – Complementos – Visão geral (Ferramentas — Suplementos — Navegar)
  • no Excel 2007 e posterior, por meio de Arquivo – Opções – Complementos – Ir – Navegar (Arquivo — Opções do Excel — Suplementos — Ir para — Procurar)

  • O que são macros, onde inserir código de macro no Visual Basic

 

Deixe um comentário