Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por Celao
#44490
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!
Por osvaldomp
#44492
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
Por Celao
#44494
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 :)
Por osvaldomp
#44495
Entendi. E qual será a planilha ativa ao rodar a macro: Formulário ou Tabela ?
Por osvaldomp
#44497
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
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord