Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Botão macro de localizar
Botão macro de localizar
Olá amigos!
Estou tentando concluir uma planilha mas falta apenas inserir um botão com macro para localizar dados.
Funciona assim: eu tenho a plan1 e a plan2, então tenho que localizar uma célula na plan2 que coincida com o que tenho na célula A1 da plan1. Já gravei a macro mas não deu certo porque os dados da célula A1 da plan1 sempre muda e a macro gravou aquele conteúdo que estava na célula da plan1 na hora da criação.
Então resumindo: Ao clicar no botão, eu quero localizar (e selecionar) na plan2 os dados que estão na célula A1 da plan1 (que sempre mudam).
Obrigado Galera!
Abraços!
Estou tentando concluir uma planilha mas falta apenas inserir um botão com macro para localizar dados.
Funciona assim: eu tenho a plan1 e a plan2, então tenho que localizar uma célula na plan2 que coincida com o que tenho na célula A1 da plan1. Já gravei a macro mas não deu certo porque os dados da célula A1 da plan1 sempre muda e a macro gravou aquele conteúdo que estava na célula da plan1 na hora da criação.
Então resumindo: Ao clicar no botão, eu quero localizar (e selecionar) na plan2 os dados que estão na célula A1 da plan1 (que sempre mudam).
Obrigado Galera!
Abraços!
Re: Botão macro de localizar
Sevenir,
Experimente o exemplo abaixo. Adapte-o á sua necessidade.
Abs
Experimente o exemplo abaixo. Adapte-o á sua necessidade.
Código: Selecionar todos
Sub localizarDados()
'Variável para armazenar o valor da célula A1 da Plan1
Dim vValor As String
vValor = ThisWorkbook.Sheets("Plan1").Range("A1")
'Selecionamos a Plan2
With ThisWorkbook.Sheets("Plan2")
.Activate
'Selecionamos a célula A1
Range("A1").Select
'Se houver erro, vá para o tratamento
On Error GoTo vErro
'Fazemos a pesquisa na Plan2 pelo valor da variável
Cells.Find(vValor, ActiveCell, xlValues, xlWhole, xlByRows, xlNext).Activate
'Se encontrarmos o valor na Plan2, informamos o endereço da célula
MsgBox "Valor encontrado na planilha " & ActiveSheet.Name & ", na célula " & ActiveCell.Address & ".", vbInformation, "Pesquisa"
'Saimos da rotina
Exit Sub
'Tratamento de erro
vErro:
'Se o código de erro for 91 (valor não encontrado)
If Err = 91 Then
MsgBox "O valor " & vValor & " não foi localizado na base de dados!", vbCritical, "Erro"
ThisWorkbook.Sheets("Plan1").Activate
End If
End With
End Sub
Re: Botão macro de localizar (RESOLVIDO)
Valeu!!
Muito bom!!
Funcionou maravilha!
Obrigado irmão!!
Abraços
Sevenir
Muito bom!!
Funcionou maravilha!
Obrigado irmão!!
Abraços
Sevenir
Re: Botão macro de localizar
srobles, ótimo código, vejo que poderia usálo para uma planilha que estou tentando.
Suponha que o valor a ser procurado deverar ser o conteudo da célula A2 da plan1
e que quanto o código encontrar o valor em uma das planilhas, deverá inserir um valor que está a frente da célula A2 da Plan1 em uma deter minada célula da planilha encontrada.
como eu faria isso?
Suponha que o valor a ser procurado deverar ser o conteudo da célula A2 da plan1
e que quanto o código encontrar o valor em uma das planilhas, deverá inserir um valor que está a frente da célula A2 da Plan1 em uma deter minada célula da planilha encontrada.
como eu faria isso?
Re: Botão macro de localizar
Adonias,
O novo valor sempre será adicionado á coluna B ou se já houver algum valor na coluna B, deverá adicionar o valor na coluna C e assim por diante?
Caso seja sempre na coluna B, experimente adicionar um módulo, e nele copie e cole o código abaixo :
E então, adicione um botão á Plan1 e chame a rotina acima.
Abs
O novo valor sempre será adicionado á coluna B ou se já houver algum valor na coluna B, deverá adicionar o valor na coluna C e assim por diante?
Caso seja sempre na coluna B, experimente adicionar um módulo, e nele copie e cole o código abaixo :
Código: Selecionar todos
Option Explicit
Sub localizarDados()
'Variável para armazenar o valor da célula A1 da Plan1
Dim vPesquisa As String
Dim vReferencia As String
vPesquisa = ThisWorkbook.Sheets("Plan1").Range("A2")
vReferencia = ThisWorkbook.Sheets("Plan1").Range("B2")
'Verificamos quantas planilhas a pasta possui
Dim indicePlanilha As Integer
Dim contPlanilhas As Integer
contPlanilhas = ThisWorkbook.Sheets.Count
For indicePlanilha = 2 To contPlanilhas Step 1
'Selecionamos a Planilha
With ThisWorkbook.Sheets(indicePlanilha)
Application.Wait 200
.Activate
'Selecionamos a célula A1
Range("A1").Select
'Se houver erro, vá para o tratamento
On Error GoTo vErro
'Fazemos a pesquisa na Plan2 pelo valor da variável
Cells.Find(vPesquisa, ActiveCell, xlValues, xlWhole, xlByRows, xlNext).Activate
'Aqui adicionamos o novo valor á coluna B
ActiveCell.Offset(0, 1) = vReferencia
'Se encontrarmos o valor na Plan2, informamos o endereço da célula
MsgBox "Valor encontrado na planilha " & ActiveSheet.Name & ", na célula " & ActiveCell.Address & ".", vbInformation, "Pesquisa"
'Saimos da rotina
'Exit Sub
'Tratamento de erro
vErro:
'Se o código de erro for 91 (valor não encontrado)
If Err = 91 Then
MsgBox "O valor " & vPesquisa & " não foi localizado na base de dados!", vbCritical, "Erro"
ThisWorkbook.Sheets("Plan1").Activate
End If
End With
Next
End Sub
Abs
Re: Botão macro de localizar
srobles,
já tinha feito com base em algumas macro do forum, um modelo e crei que o seu código é bem melhor, mas não estou sabendo utilizá-lo
Poderia dar uma olhada no meu modelo e dizer onde eu coloco seu código para ter o que preciso
já tinha feito com base em algumas macro do forum, um modelo e crei que o seu código é bem melhor, mas não estou sabendo utilizá-lo
Poderia dar uma olhada no meu modelo e dizer onde eu coloco seu código para ter o que preciso
- Anexos
-
- testeenv.rar
- (47.11 KiB) Baixado 213 vezes
Re: Botão macro de localizar
Adonias,
Veja se o que fiz se aproxima do que deseja.
Desculpe, mas não entendi muito bem a sua necessidade.
Abs
Veja se o que fiz se aproxima do que deseja.
Desculpe, mas não entendi muito bem a sua necessidade.
Abs
- Anexos
-
- testeenv.zip
- (60.35 KiB) Baixado 208 vezes
Re: Botão macro de localizar
srobles,,
Veja bem:
A plan pgto vou preencher os dados co copiar colar de uma outra fonte de pesquisa
uma vez copiado os dados na plan "Pgto" tenho de pegar os valores pagos por CNPJ e competência e localizar a planilha respectiva adicionando o valor na coluna valor pago que começa na linha 20 coluna D de cada planilha
o código tem de identificar a planilha correspondente ao CNPJ e dentro dessa planilha a competência igua a da plan "PGTO" para poder inserir o valor na célula "valor pago"
Veja bem:
A plan pgto vou preencher os dados co copiar colar de uma outra fonte de pesquisa
uma vez copiado os dados na plan "Pgto" tenho de pegar os valores pagos por CNPJ e competência e localizar a planilha respectiva adicionando o valor na coluna valor pago que começa na linha 20 coluna D de cada planilha
o código tem de identificar a planilha correspondente ao CNPJ e dentro dessa planilha a competência igua a da plan "PGTO" para poder inserir o valor na célula "valor pago"
Re: Botão macro de localizar
Outro detalhe, preciso que o código lance todos os valores da plan "PGTO" nas respectivas planilhas
É esse loop que tô apanhando pra conseguir
É esse loop que tô apanhando pra conseguir