Página 1 de 1

LOCALIZAR (CNTRL + L) VIA MACRO

Enviado: 05 Jun 2019 às 15:42
por Celao
Olá, pessoal!

Estou trabalhando numa tabela que me trás alguns dados via PROCV, a partir de um número de cadastro que eu digito. Até aqui ok.

Agora, eu preciso atualizar, modificar essas informações e colar de volta, sobrescrever na mesma linha de onde elas saíram, lá na base dedados. Para isso eu pensei no que seria o mais óbvio, o comando CNTRL+L. E assim, comecei a gravar a macro, mas aqui começa o problema. Eu explico.

O número que eu quero procurar , por exemplo "2", fica na célula F3, mas na macro ele aparece como WHAT:="2":

Range("F3").Select
Selection.Copy
Sheets("Tabela").Select
Columns("A:A").Select
Selection.Find(What:="2", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate

O problema é que no campo onde está 2, poderia ser qualquer número, então preciso que a macro pegue o valor que está na célula naquele momento e não "2", apenas. No fim, se eu digitar "5", ela tem que achar em qual célula daquela coluna (no caso, a coluna "A") está o número "5" (convém dizer: os números não se repetem) e parar ali.

Tem jeito de trocar esse "what:=" por outra coisa coisa, quem sabe uma caixa de texto de onde a macro pudesse copiar o valor?

Espero ter sido claro o suficiente, mas qualquer coisa estou por aqui.

Desde já, obrigado a todos!

Re: LOCALIZAR (CNTRL + L) VIA MACRO

Enviado: 05 Jun 2019 às 17:23
por osvaldomp
Experimente:
Código: Selecionar todos
Sub Procura()
 Dim n As Range
  Set n = [A:A].Find([F3])
  If Not n Is Nothing Then n.Select
End Sub

Re: LOCALIZAR (CNTRL + L) VIA MACRO

Enviado: 05 Jun 2019 às 17:59
por Celao
osvaldomp escreveu:Experimente:
Código: Selecionar todos
Sub Procura()
 Dim n As Range
  Set n = [A:A].Find([F3])
  If Not n Is Nothing Then n.Select
End Sub
Olá Osvaldo! É quase isso. Ele busca dentro da mesma planilha (Formulário), eu preciso que ele faça a busca na planilha ao lado (Tabela). Ou seja, a macro coleta o número na célula F3 da planilha Formulário e busca na Coluna A da planilha Tabela. Se não for incômodo, eu ficaria agradecido :)

Re: LOCALIZAR (CNTRL + L) VIA MACRO

Enviado: 05 Jun 2019 às 18:09
por osvaldomp
Entendi. E qual será a planilha ativa ao rodar a macro: Formulário ou Tabela ?

Re: LOCALIZAR (CNTRL + L) VIA MACRO

Enviado: 05 Jun 2019 às 18:56
por Celao
Será a planilha "Formulário".

Re: LOCALIZAR (CNTRL + L) VIA MACRO

Enviado: 05 Jun 2019 às 19:59
por osvaldomp
Fiz as alterações. O código abaixo irá procurar na coluna A de Tabela o valor de F3 da planilha ativa. Se encontrado, a planilha Tabela será ativada e a célula que contém valor igual a F3 será selecionada.
Código: Selecionar todos
Sub Procura()
 Dim n As Range
  Set n = Sheets("Tabela").[A:A].Find([F3])
  If Not n Is Nothing Then Sheets("Tabela").Activate: n.Select
End Sub

Re: LOCALIZAR (CNTRL + L) VIA MACRO

Enviado: 06 Jun 2019 às 16:59
por Celao
Olá Osvaldo! Funcionou direitinho! Agora é só fazer mais alguns ajustes e deverá funcionar como esperado.

Muito obrigado! :D :D :D :D!!!