Guardar endereço cé...
 
Notifications
Clear all

Guardar endereço célula ativa para resgatá-la no final

5 Posts
4 Usuários
0 Reactions
772 Visualizações
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
Topic starter
 

Pessoal boa Noite

Talvez a resposta esteja na cara, mas eu não a enxergo. Por favor, me ajudem..

Estou na Plan1 e apertei o botão para iniciar a macro.
Antes de apertar o botão, a célula ativa na Plan1 era H1. Durante a execução da rotina, a célula ativa vai mudando... Gostaria que, quando a macro terminasse, a célula ativa voltasse a ser H1 novamente.

Porém, H1 não é um endereço fixo. A célula ativa do inicio poderia ter qualquer outro endereço.

Teria como: Guardar a informação do endereço da célula ativa do inicio da sub, e resgatá-la no final para que eu a selecionasse?

Como eu faria isso?

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 13/04/2018 3:21 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Fala amigo Arruda!

Aqui vai uma ideia:

Sub AtivaCélulaInicial()
  Dim ac1 As Range: Set ac1 = ActiveCell
  '.... seu código
  ac1.Activate
  Set ac1 = Nothing
  'Ou
  Dim ac2 As String: ac2 = ActiveCell.Address
  '.... seu código
  Range(ac2).Activate
End Sub

Porém, como vc já sabe, o ideal é evitar usar ativações e seleções sempre que possível...

 
Postado : 13/04/2018 5:02 pm
(@klarc28)
Posts: 971
Prominent Member
 

Teria como: Guardar a informação do endereço da célula ativa do inicio da sub, e resgatá-la no final para que eu a selecionasse?

Como eu faria isso?

Realmente está na cara, mas compreendo que, às vezes, temos um bloqueio de criatividade.

Basta guardar o endereço da célula em uma variável local ou global e depois pegar o endereço que ficou gravado na variável:

Sub Teste ( )

Dim EnderecoCelulaAtiva as String

EnderecoCelulaAtiva = ActiveCell.Address






Range(EnderecoCelulaAtiva).Select

End Sub

Durante a execução da rotina, a célula ativa vai mudando...

Só faça isso se for imprescindível, mas, na maioria das vezes não é, pois torna a execução mais lenta.

Se for imprescindível, é costume utilizar:

Application.ScreenUpdating = False


Application.ScreenUpdating = True

Para agilizar a execução.

 
Postado : 14/04/2018 5:37 am
(@mprudencio)
Posts: 2749
Famed Member
 

Eu vou fazer a pergunta que nao quer calar:

Porque vc quer que o codigo terminie sempre na celula ativa de qdo inciou?

Pelo menos foi o que eu entendi o que vc deseja fazer.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 14/04/2018 7:05 am
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
Topic starter
 

Colega MPrudencio,na verdade eu nao preciso.
Foi a maneira que eu achei para exemplificar a duvida.

Mas,pelas respostas doa clegas acima ja entendi como funciona.

Abrç!

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 14/04/2018 10:07 am