Pesquisar em Todas as Abas da Planilha Excel via Códigos VBA

Pesquisar em Todas as Abas da Planilha Excel via Códigos VBA Guia menu célula E2 digitei o nome do cliente pressionei enter show de bola pessoal já retornou os registros referente ao cliente em todas as guias da minha planilha Neste vídeo Vamos trabalhar com códigos Excel VBA para pesquisar em todas as guias da planilha beleza pessoal então vamos.

Pesquisar em Todas as Abas da Planilha Excel via Códigos VBA

Trabalhar guia desenvolvedor Visual Basic nós vamos fazer a macro em um módulo então acessem o menu inserir módulo e dentro do módulo sub eu vou chamar esta macro de pesquisar abre e fecha parênteses e pressiona enter próximo passo é colocar um sistema de tratamento de erro on error go to.

Erro caso tudo ocorreu bem Exit sub Caso contrário vai para erro dois pontos e exibe uma msg Box abre aspas duplas erro ponto de exclamação e fecha as aspas duplas vírgula bebê crítical vírgula abre aspas duplas título da mensagem pesquisa e fecha as aspas duplas por enquanto deixem desativado o sistema de tratamento de erro.

Prosseguindo precisamos desativar algumas funções do Excel para deixar a nossa macro mais rápida então it aplication e para fechar o it end Wi e dentro deste Wi P screen update igual a false para desativar a.

Atualização de tela pon enable também igual a false P calculation calculation igual a XL calculation manual no entanto no final da macro precisamos ativar novamente estas funções podem copiar o it colar logo abaixo e alterar o false.

Para true true e onde tem XL calculation manual nós vamos colocar XL calculation automátic beleza desativamos algumas funções do Excel próximo passo é definir as variáveis da nossa macro din TG referente a Total guias as Double do tipo número para facilitar podem copiar.

Ess as Double vírgula I também as Double vírgula L as Double vírgul TL também as Doble din linha as doble vírgula coluna também do tipo número e eu preciso também de duas variáveis do tipo texto dinm nome guia as string.

Vírgula pesquisa as string também do tipo texto e eu preciso de mais uma variável do tipo texto vírgula eu vou chamar esta variável de Ok as string e também precisamos de um arway de arr as variante variáveis do tipo variante aceitam qualquer tipo de D próximo passo é limpar a área da Guia.

Menu para carregar os reg no meu caso nome renomeado da guia é menu no entanto eu preciso referenciar o nome interno do VBA da Guia que é este planilha 3 fora dos parênteses então planilha 3 P Range abre e fecha parênteses e dentro dos.

Abre e fecha aspas duplas e dentro das aspas duplas precisamos informar a área para limpar no meu caso eu vou limpar a partir da célula A5 até uma linha definida na coluna h de volta no VBA dentro das aspas duplas a c dois pontos coluna H linha 10 100 1000.

10.000 100.000 fora dos parênteses ponto clear contents para limpar apenas o texto mantendo a formatação na sequência precisamos capturar o critério para a pesquisa então podem copiar a variável pesquisa no meu caso o critério para pesquisa vai ser informado na célula E2 da Guia menu no entanto eu preciso.

Referenciar o nome interno do VBA da Guia que é este planilha 3 então a variável pesquisa vai ser igual e aqui pessoal tem mais um detalhe eu quero padronizar o texto para a caixa alta então VBA Puke abre e fecha parênteses e dentro dos parênteses no meu caso vai ser a planilha 3 pon reng abre e fecha parênteses e dentro.

Veja Também:

    Dos parênteses abre e fecha aspas duplas e dentro das

    Aspas duplas célula E2 fora dos parênteses pon texte Beleza capturamos o critério para pesquisa prosseguindo precisamos referenciar a planilha então workbook e para fechar o it end.

    Wi Beleza referenciamos o arquivo próximo passo é contar quantas guias tem este arquivo então podem copiar a variável TG e colar dentro do it e a variável TG vai ser igual a pon shits PC para contar quantas guias tem na.

    Planilha na sequência precisamos fazer um laço para percorrer todas as guias podem copiar a variável TG nós vamos trabalhar com laço for for i igual iniciando na guia um até o total de guias e para fechar o laço next Beleza este laço ele vai percorrer todas as guias da.

    Planilha e dentro deste laço Primeiro passo é capturar o nome da Guia podem copiar a variável nome guia e a variável nome guia vai ser igual a ponit abre e fecha parênteses e dentro dos parênteses variável I que representa a guia da planilha em que o laço está fora dos parênteses ponto.

    Name agora pessoal tem um detalhe eu não quero Executar a sobre a guia menu planilha 3 e também não quero Executar a pesquisa sobre a guia relatório planilha 5 então eu vou colocar um if if se a variável nome guia for diferente menor maior que quer dizer diferente de planilha 3 and e precisa ser diferente também da.

    Planilha 5 então nome guia menor maior que quer dizer diferente de planilha 5 P name e para fechar o if if se for diferente da planilha 3 e também da planilha 5 significa que na guia em que o laço está eu quero fazer a pesquisa e para fazer a pesquisa eu.

    Preciso saber quantas linhas desta Guia TEM registros então agora nós vamos trabalhar com a variável TL podem copiar e colar dentro do Wi e a variável TL vai ser igual a uma função que é worksheet function ponto C A para contar quantas.

    Células estão preenchidas em uma coluna referenciada abre e fecha parênteses e dentro dos parênteses ponto shits abre e fecha parênteses e dentro dos parênteses variável I fora dos parênteses ponto Range abre e fecha parênteses e dentro dos parênteses abre e fecha aspas duplas e dentro das aspas duplas precisamos referenciar uma coluna no meu caso a.

    Estrutura das guias é igual então eu vou contar a coluna A em todas as guias a coluna A inicia os registros a partir da célula A1 de volta no VBA dentro das aspas duplas a dois pontos a na dúvida vocês podem somar mais linhas para garantir que vão trabalhar com todos os registros por exemplo mais 10.

    No meu caso eu tenho certeza que está certo então vou deixar desta

    Forma próximo passo é capturar os registros para o Array podem copiar a variável arr e a variável arr vai ser igual a ponto shits abre e fecha parênteses e dentro dos parênteses variável I fora.

    Dos parênteses ponto R abre e fecha parênteses e dentro dos parênteses abre e fecha aspas duplas e agora precisamos informar a área para capturar os dados no meu caso em todas asias eu vou capturar a partir da célula A2 até a última linha com registro na coluna g e todas as guias t a mesma estrutura de volta no VBA dentro das.

    Aspas duplas A2 dois pontos coluna G fora das aspas duplas e Comercial tecla shi número 7 está ali o comercial e a variável TL fora dos parênteses Ponto value beleza capturamos os registros agora nós precisamos verificar se tem registro Pode ser que a guia esteja.

    Zerada então podem copiar a variável TL if se é a variável TL for maior que um e if se for maior que um significa que tem registro nesta guia neste caso eu preciso localizar a próxima linha vazia da Guia menu para inserir os registros que atendam ao critério de pesquisa.

    Então agora nós vamos trabalhar com a variável linha podem copiar e colar dentro do IF e a variável linha vai ser igual a uma função worksheet function pon C abre e fecha parênteses e dentro dos parênteses precisamos refer a guia no meu caso planilha.

    3 dentro dos parênteses planilha 3 P Range abre e fecha parênteses e dentro dos parênteses abre e fecha aspas duplas no meu exemplo guia menu eu vou contar a coluna no entanto eu tenho TR células vazias acima do cabeçalho então preciso somar mais TR e mais um no total mais qu para cair na.

    Próxima linha vazia de volta no VBA dentro das aspas duplas a dois pontos a fora dos parênteses mais 4 beleza Já sei a linha vazia da Guia menu Agora eu preciso de um laço para percorrer o arway podem copiar a variável arr e nós vamos trabalhar com um laço for for L iG.

    1 e agora Pessoal vocês vão colocar o Bond O Bond abre e fecha e dentro dos parênteses o nosso ví 1 e para fechar o laço Vamos colocar next l e dentro deste laço nós precisamos de mais um laço para percorrer a linha ou seja a cada linha que o primeiro laço for passar nós vamos ter um segundo.

    Para percorrer todas as colunas da linha então for coluna vai ser igual a 1 7 Mas de onde que vem este s é a quantidade de colunas do meu arway no meu caso todas as guias tem S colunas de volta no VBA para fechar o laço precisamos colocar.

    Next next coluna e dentro deste laço nós precisamos de um if para verificar se o registro atende ao critério de pesquisa então if e eu vou padronizar para caixa alta então VBA puk abre e fecha parênteses e dentro dos parênteses o nosso.

    Ari arr abre e fecha parênteses e dentro dos parênteses variável L que se refere a linha vírgula variável coluna fora dos parênteses comando like porque vai ser uma pesquisa por par do texto espaço abre e fecha aspas duplas e dentro das aspas duplas asterisco fora das aspas duplas e.

    Comercial e aí vem o critério de pesquisa no nosso caso variável pesquisa mais um e Comercial abre aspas duplas mais um asterisco e fecha as aspas duplas neste caso o início do texto não precisa ser igual e o final também não precisa ser igual then Se entrou neste if significa que este registro atendeu ao critério de.

    Pesquisa neste caso a variável Ok vai ser abre aspas duplas igual a Ok e fecha as aspas duplas para fechar o if end if beleza Nesta parte é para verificar se a linha de registro do arway atende ao critério de pesquisa podem copiar a variável Ok e.

    Depois do Next coluna nós vamos colocar um if if se a variável Ok for igual abre aspas duplas Ok mas precisa ser em caixa alta fecha aspas duplas then e if se a variável Ok for igual a ok nós vamos transferir esta de Registro para a guia menu no meu caso planilha 3 então Wi planilha 3 e para fechar o Wi end Wi.

    E dentro deste Wi nós precisamos de mais um laço for for coluna iG 1 iniciando na coluna um tu e indo até a coluna sete e para fechar o laço next coluna e dentro deste laço ponto cus abre e fecha parênteses e dentro dos parênteses variável linha vírgula variável.

    Coluna fora dos parênteses ponto value vai ser igual ao nosso aray arr abre e fecha parênteses e dentro dos parênteses variável L vírgula variável coluna desta forma nós vamos transferir todos os registros da linha do arway para a guia da planilha e agora agora depois que sair deste laço for eu quero colocar na coluna oito o nome da Guia onde este.

    Registro está então ponto cus abre e fecha parênteses e dentro dos parênteses variável linha vírgula No meu caso eu vou colocar na coluna H da Guia menu então 1 2 3 4 5 6 7 8 coluna 8 de volta no VBA coluna 8 fora dos parênteses ponto value igual.

    A variável nome guia e aí precisamos descer para a próxima linha então a variável linha vai ser igual a ela mesma mais um e precisamos limpar a variável Ok variável Ok iG aete que é vazio transferimos esta linha de reg paraia da plan agora pess tem um deixa.

    Ver vai ser depois do Next l precisa limpar o arway arr ig a íp limpando o ar porque ele vai ser utilizado para capturar os registros da próxima guia da planilha podem Copiar esta linha de código e colocar também depois do end e ainda falta um detalhe Caso não for.

    Encontrado registros nós precisamos alertar o usuário então depois do Wi application nós vamos fazer o seguinte variável TL vai ser igual a uma função worksheet function pon C abre e fecha parênteses e dentro do parênteses no meu caso a guia menu é a.

    Planilha 3 planilha 3 ponto Range abre e fecha parênteses e dentro dos parênteses abre e fecha aspas duplas No meu caso eu vou contar a coluna A a dois pontos a e no meu exemplo se eu contar a coluna A e e a variável TL for igual a 1 significa que eu tenho apenas o cabeçalho neste caso não foi encontrado.

    Registros referente à pesquisa de volta no VBA Então agora eu vou colocar um if if se a variável TL for igual a 1 then e end if Se entrou neste if eu vou alertar o usuário utilizando uma msg Box msg Box abre aspas duplas não encontrado ponto de exclamação e fecha.

    As aspas duplas vírgula VB information vírgula abre aspas duplas título da mensagem pesquisa e fecha as aspas duplas beleza pessoal fizemos a nossa macro agora nós precisamos acionar a macro No meu caso eu quero acionar a macro de pesquisa quando for digitado na célula E2 da Guia menu de volta no VBA.

    Iia menu planilha 3 duplo clique sobre a guia e nesta caixa de seleção vocês vão escolher worksheet por padrão caímos no evento sel Change Mas nesta caixa de seleção do lado direito vocês vão escolher o evento Change este evento sel Change podem deletar e dentro do evento Change if target.

    Target address para pegar o endereço da célula que foi digitada igual abre e fecha aspas duplas e dentro das aspas duplas Cifrão no meu caso coluna e cifrão linha 2 se for igual a célula E2 then e and if e dentro deste if eu vou colocar mais um if if se target pon value for diferente.

    Menor maior que quer dizer diferente diferente de vazio que é em el e if Se entrou na primeira parte do IF eu vou acionar a macro de pesquisa que nós fizemos no módulo 1 então módulo 1 ponto E já apareceu o nome da macro pesquisar no entanto se entrar no else eu vou limpar a área da Guia menu planilha 3 P Range abre e fecha.

    Parênteses e dentro dos parênteses abre e fecha aspas duplas eu vou limpar a partir da célula A5 dois pontos até a coluna H linha 10 100 1000 10 100000 fora dos parênteses ponto clear contents para limpar apenas o texto mantendo a formatação eu vou voltar a seleção da célula para a célula que o usuário.

    Digitou então comando target select beleza pessoal feito a nossa macro salva as alterações e vamos testar primeiro eu vou pesquisar pelo cliente guia menu célula E2 digitei o nome do cliente pressionei enter show de bola pessoal já retornou os registros referente ao cliente em todas as guias da minha.

    Planilha se por acaso a formatação de alguma coluna não estiver ok seleciona a coluna Clica com o botão direito do mouse formatar células coloca no formato correto Ok vamos ver pelo produto eu vou pesquisar agora pode ser carne carne pressionei enter B beleza galera esta pesquisa funciona por qualquer coluna dos.

    AVISO LEGAL: Toda a responsabilidade do conteúdo e autoria deste vídeo transcrito, é do produtor do canal. Clique no Link do Vídeo: https://www.youtube.com/watch?v=uTlnkgcxlqs

Postar um comentário

Postagem Anterior Próxima Postagem