Função para retornar a célula ativa do Excel

Lista Dinâmica Excel com Imagens - Procv com Imagens
Lista Dinâmica Excel com Imagens – Procv com Imagens
21 de março de 2012
Lista dinâmica com base em outra lista de dados Excel
Lista dinâmica com base em outra lista de dados Excel
27 de março de 2012

Objetivo: Função para retornar a célula atual do Excel.


Atenção: Atualização em: 28/03/2012, a função já existe no Excel é: =CÉL(“endereço”), agradeço ao Afonso pela colaboração, a parte que tem a atualização na mudança da célula continua valendo.

Estava precisando hoje uma função que retornasse o endereço da célula ativa do Excel, mas infelizmente desconheço função que faça isso automaticamente.

Desta forma desenvolvi uma função para extrair esta informação do Excel, em um próximo post vou demonstrar porque eu precisava desta função, por hora vamos apenas aprender como ela funciona.

1. No arquivo Excel no qual você vá usar a função para determinar a função atual insira um módulo no VBA e a função abaixo:

Private Function gfLinhaAtual() As String
    Application.Volatile

    gfLinhaAtual = ActiveCell.Address
End Function

2. Na planilha em que for utilizar a função para identificar a célula coloque o código abaixo:

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

A primeira função identifica o endereço da célula que estiver selecionada e a chamada do procedimento Worksheet_SelectionChange com o comando Calculate faz com que ao haver uma mudança de célula a função seja atualizada.

Esse foi a demonstração da Função para retornar a célula atual do Excel. Faça download abaixo:

Abraço

Marcos Rieper

17 Comments

  1. […] planilha exemplo foi utilizada a função explicada no artigo anterior (http://guiadoexcel.com.br/funcao-para-retornar-a-celula-ativa-do-excel) em que foi criada uma função para determinar o endereço da seleção […]

  2. Ronaldo disse:

    Olá Marcos,

    É possível uma função retornar o valor contido na célula ativa em vez do endereço?

    Obrigado!

    • Marcos Rieper disse:

      Bom dia Ronaldo,

      Para fazer isso você pode usar a fórmula =CÉL(“conteúdo”), mas não esqueça de inserir o código VBA abaixo descrito abaixo e também descrito no artigo:

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

      Abraço

      Marcos Rieper

      • Giovani Silva disse:

        Boa dia Marcos, obrigado pelas dicas!
        Uma dúvida, tem como usar essa função para um intervalo de células?

        Exemplo: gostaria de saber o conteúdo de uma célula aleatória que eu selecionar dentro de um intervalo específico (B5:D10), e o valor da célula selecionada aparecer em A1 por exemplo?

        Grato!

        • Marcos Rieper disse:

          Olá Giovani,

          Use este comando no código VBA da planilha que deseja realizar esta tarefa.

          Private Sub Worksheet_SelectionChange(ByVal Target As Range)
          Range(“a1”).Value = Target.Value
          End Sub

          Abraço
          Marcos Rieper

  3. celso disse:

    Movimentar celulas com filtro ativo no Excel

    esta funcao retorna a primeira celula ativa abaixo de onde começa o filtro.

    ActiveCell.Offset(1, 0).Select
    Do While ActiveCell.EntireRow.Hidden = True
    Selection.Offset(1, 0).Select
    Loop

    Do While Selection.Offset(-1, 0) Range(“d54”) ‘ celula que começa o filtro
    Selection.Offset(-1, 0).Select
    Loop

    End Sub

  4. celso disse:

    este esta correto

    Range(“d54”).Select
    ActiveCell.Offset(1, 0).Select
    If ActiveCell.Select Range(“d55”) Then ‘ d55 celua apos celula que comeca o filtro
    Do While ActiveCell.EntireRow.Hidden = True
    Selection.Offset(1, 0).Select
    Loop
    Else
    Do While Selection.Offset(-1, 0) Range(“d54”) ‘ celula que começa o filtro
    Selection.Offset(-1, 0).Select
    Loop
    End If

  5. gfLinhaAtual = ActiveCell.Address, (substitua o Address por value).

  6. Igor disse:

    Queria saber como resultar o nome da celula e não no valor!
    Tipo; tenho 10 celulas cada um com um valor 0 a 10, Cada celula eu coloco um nome, tipo banana maça etc.
    ao fazer qualquer calculo Exemplo: =Maximo(A1:A10)
    ao invés de voltar o maior valor(número) teria no lugar o Nome da Célula.(FrutaX)

  7. Ivanna disse:

    Boa tarde,acha é possível seleccionando um range por exemplo (E6:E10) que fica marcado com uma cor qualquer mas exactamente as células B6:C10 ((B:C)é fixo) e coluna “E” e linha 6(está linha é fixa), ou seja, fazer isso de uma forma dinâmica.
    ou seja, cada vez picar num range( visto que tenho células em marge)pinta a posição( encontrar o número da linha) deste range nas colunas B:C e coluna onde picamos mas linha é fixa (6).

    desde já agradeço a sua resposta.
    Ivanna.

  8. Thiago Gomes disse:

    Como ficaria esse código no libre office???

    Estou precisando muito!

    Obrigado

  9. Thiago disse:

    Tem alguma função ou código VBA que retorne a célula atual apenas selecionada, e não a última que foi modificada ou onde foi dada dois cliques?

    Abraço.

  10. ana disse:

    oque é célula ativa

  11. Gabriel disse:

    Olá,

    É possivel que essa função retorne a seleção realizada na planilha? Exemplo, selecionei (A1;D10).
    Pelo que testei, a função desse tópico só retorna a primeira seleção, no caso A1.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.