Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

M3W

Pesquisa VBA Excel

Recommended Posts

Bom dia garotos e garotas

 

Deve ser meu primeiro tópico aqui, e será pedindo ajuda rsrs.

Bem vamo lá...

 

Eu estou com uma planilha do escel aqui e nela tenho as seguintes abas: Capa, Dado e Exibiçao.

Bem na capa temos 3 textbox (um para coluna CNPJ "txtCNPJ", outro para Convenio "txtConvenio" e um para Grupo Economico "txtGeconimico"), temos 2 combobox (um para relacionamento "ComboBoxRelacionamento" e o outro para data "ComboBoxMes") e temo 1 command butom (chamado Search) "cmdOk"

 

Acho que deu para entender está parte. Vamos prosseguir...

 

Na segunda aba da planilha eu tenho uma tabela com 26 colunas e 23 mil linhas com dados de clientes. Destas colunas temos algumas relacionadas com os textbox e combobox (CNPJ, Convenio, Grupo Econônimo, Relacionamento e Mes). E a terceira aba "Exibição" está vazia.

 

Bem o que eu quero fazer é um esquema de busca na capa, para procurar na planilha Dados e exiba as linhas encontradas na planilha Exibição.

 

Bem o que acontece é que a pessoa que for fazer a busca não necessita preencher todos os campos (textbox e combobox) apenas 1 ou mais e o macro pesquisa as palavras dos txtbox ou combobox com relação a sua coluna na planilha Dados.

Se a pessoa preenche apenas um campo então o macro procura a palvra dela na coluna referente ao campo preenchido e se encontrar a palavra exibe toda a linha na planilha Exibição. No entando se for preenchido mais de um campo então o macro procura, nas colunas relacionadas, e se encontrar exibi a linha inteira na planilha Exibição.

 

 

O que eu consegui fazer até agora... Caso não preencha nenhum campo que apareça a msg " Preencha algum campo" e só T.T

 

Não sei mas que infomação eu posso passar para ajudarem a me ajudar rsrs.

 

A planilha Dados começa na coluna B11 e vai até a coluna AL11, já a linha vai até o começa no número 11 e vai até 16308.

 

Se me ajudarem o Thelon vai dar um premio especial!

 

vlw peoples

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode fazer um for na(s) coluna(s) correspondente(s) para ver se o na celula há a informação que o usuario informou

 

Manja de VBA?

você opde fazer mais ou menos assim:

 

for i=0 to i<= totalDeLinhas

if (Sheets("Nome").Cells(i, 7).Value = txtCNPJ.text and ou or ...... ) then

....'código que você queira fazer com essa informação.

end if

 

Isso atende a sua necessidade ou precisa de algo mais expecifico?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Paulo

 

Então man como eu tinha postado o tópico e ficou a um tempo sem resposta, de tanto mecher eu acabei conseguindo o que eu queria. Bem ficou cheio de "Gambiarra" mas ta funcional xD.

 

 

Mas tem algumas coisas que ficaram faltando e seria bom ter.

Uma delas é quando o que a pessoa digita no TextBox e a macro não encontra na hora que faz o filtro. Quando isso acontece o programa pede p/ depurar e eu gostaria de fazer um IF p/ que quando isso acontecer ele enviasse uma msg de erro para o usuário informando que a palavra digitada não consta na tabela de dados.

 

 

Anyway

Obrigado pela resposta man.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem o onerror do vb6 e vba que é similar ao try catch, bem simples de usar.

Caso você necessite tratar um erro.

Da uma pequisada sobre isso.

E nesse exemplo que te mostrei você pode armazenar a informação em uma variavel booleana só pra ter certeza

 

tem essas duas formas, mas foi meio de bate pronto mas talvez resolva seu problema.

 

dim  Bl_confirma as Boolean 
for i=0 to i<= totalDeLinhas 
if (Sheets("Nome").Cells(i, 7).Value = txtCNPJ.text and ou or ...... ) then
....'código que você queira fazer com essa informação.
Bl_confirma = true
else
Bl_confirma = false
 end if

if Bl_confirma = false then

msgbox("a informação não foi encontrada!!")

end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.