Conteúdo
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:
- Selecionamos nossa tabela, ou seja, aquelas células nas quais a seleção de coordenadas deve ser exibida no futuro.
- 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)
- 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.
- 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