Estimados leitores amantes do excel…
Devido a inúmeros comentários e pedidos acerca da ferramenta que disponibilizei no artigo sobre pesquisa simples, hoje, estou incrementando algumas melhorias de acordo com as sugestões enviadas para mim.
Ajustei algumas linhas de comando que faziam com que as funções fossem estáticas, do tipo, a pesquisa só seria realizada na Plan1, ou, também não era possível escolher em qual coluna pesquisar. Seria necessário, reconfigurar toda a estrutura dos códigos programados. Hoje, portanto, reprogramei esta função da pesquisa personalizada, para, por exemplo:
- Pesquisar em mais de uma planilha;
- Pesquisar definindo a coluna onde os dados serão procurados (desde que, as planilhas possuam a mesma estrutura de colunas);
- Exibir em que planilha o resultado foi encontrado.
Algumas outras sugestões dos leitores, eu disponibilizarei, em um próximo artigo. Mas, já adiantando o assunto, será incluir nessa pesquisa a possibilidade de atualizar esses dados na base de dados da planilha onde eles estão escritos. Não deixem de acompanhar esta “saga” (risos). Bem… mas vamos a missão de hoje.
Para quem não leu o artigo anterior sobre Criando uma Pesquisa Personalizada Simples, sugiro que dê uma lida.
Não vou me estender em muitos detalhes na explicação de como trabalha o código, até porque, ele está bem documentado. Na verdade, é mais uma atualização do código anterior com adição de uma caixa de listagem contendo os campos da planilha para escolha no momento da pesquisa. No caso do usuário selecionar “Tudo”, a busca será realizada em toda a planilha base.
Supondo que minhas planilhas que contêm dados para serem pesquisados sejam:
- Plan1
- PlanBase2
E, supondo que os campos de minhas planilhas são:
Nome – Estado – Função – Status
Teremos:
Uma função para definir as planilhas que serão bases para as pesquisas.
Uma rotina para configurar a Lista de Campos das planilhas. Nessa rotina, deve ser digitado o nome dos campos, geralmente os títulos dos cabeçalhos dos dados escritos nas tabelas de dados.
Já na função abaixo, seu efeito é cruzar o nome dos campos com a sua posição na planilha. Ou seja, ao selecionar o campo “Nome” por exemplo, a minha busca será feita na coluna “A”. Noutro caso, se for por “Função”, a pesquisa será feita na coluna “C”.
O funcionamento é bem simples e sua configuração uma vez realizada, não necessitará ser alterada. A escolha dos campos será feita na tela do formulário de pesquisa, e serão exibidos os resultados encontrados em todas as planilhas definidas no código.
Abaixo segue o código completo, já com as funções acima e as atualizações das demais rotinas.
Amigos, este código é apenas um exemplo e pode ser adaptado por vocês a medida de suas necessidades. Fiquem à vontade para comentá-lo aqui no site.
E não deixem de ler a parte 3, onde ensino como editar os dados pesquisados através do próprio formulário, salvando na planilha base de dados, ok.
Até a próxima.
Genial Reinaldo
Ficou muito bom essa pesquisa simples 2.
Obrigado.
Bom dia
Reinaldo
Na hora de pesquisar da segiuinte mensagem:
ERRO DE TEMPO NA EXECUCÃO ‘448’
ARGUMENTO NOMEADO NÃO LOCALIZADO
Tem comome ajudar o que ocorre???
Pode ser algum erro de digitação.
No VB o seguinte comando fica com selecionado com o fundo amarelo dessa forma:
Set Busca = .Cells.Find(What:=TermoPesquisado, After:=.Range(“A1”), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Por favor pode me ajudar?
Vagner,
Você baixou o arquivo do site ou criou um novo arquivo?
Reinaldo, estou tentando fazer a mesma coisa e está com o mesmo erro do Vagner.
Qual seria a solução????
Eu criei um novo arquivo.
Tente baixar o arquivo fonte do exemplo e modificá-lo a partir dele.
O erro mais provável pode ser erro de digitação ou referência inválida de objetos.
Abç
Prezados,
Estou fazendo uma planilha para uma amiga controlar os membros da igreja dela. Basicamente tenho uma aba com uma estrutura de cadastro e com uma macro eses dados são transportados para uma base. Agora criei uma aba usanfp PROCV para pesquisar os dados de determinado membro. Agora o que preciso é após efetuar alterações nestes dados sobrepor estas informações na base. Vocês podem me ensinar como fazer isto? Qual o código da MACRO que pesquisa na base e faz a substituição?
Aguardo retorno,
Shirley
Shirley,
Aproveitando seu comentário, escrevi um artigo de conclusão para esta série de artigos.
Espero que ajude e dê uma idéia para seu projeto.
Leia no link:
https://www.exceldoseujeito.com.br/2011/01/10/pesquisa-personalizada-simples-3-parte-final/
Abç.