Notifications
Clear all

CONTROLE DE ERRO

6 Posts
3 Usuários
0 Reactions
1,803 Visualizações
(@edcurita)
Posts: 67
Estimable Member
Topic starter
 

Olá amigos,

Estou aprendendo o desenvolvimento com VBA. Tenho lido algumas coisas aqui que tem me ajudado. Mas o conhecimento é pouco, até a dúvida é uma dúvida.
Estou postando meu projeto para darem uma olhada. O que acontece é que fiz um processo para que sejam lidos os dados da planilha 2 e copiados para a planilha 5 para impressão em uma listbox (frmRelatorio_cheques).
Então, quando eu acesso o frmConsulta_cheque, tenho duas opções: listar todos ou listar por data. Escolho a opção e mostra na listbox. Quando saio da listbox, a plan 5 é limpa e na plan2 são retirados os autofiltros.
Acontece que se eu fizer várias consultas por data, tudo dá certo. Passo para uma consulta de todos e dá certo novamente (ou não), mas se eu fizer novamente uma consulta de todos, cai diretamente no controle de erros e não faz nada.
Fui linha por linha com F8 e vi que quando chega na linha de comando que é Plan2.Range("A1:D" & a).Select, simplesmente vai para o controle de erros. Mas aí eu saio e volto, faço a opção por todos, e a primeira vez dá certo, uma segunda já não dá. Entendi que após fazer uma vez ele deve limpar a memória mas não sei como fazer. Agradeço a disposição e ajuda dos amigos.

Edmilson

 
Postado : 03/07/2013 12:24 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

edcurita,

Boa Tarde!

Veja se é assim:

 
Postado : 04/07/2013 9:22 am
(@edcurita)
Posts: 67
Estimable Member
Topic starter
 

Muito obrigado Wagner,

Deu certo. Ainda não vi exatamente o que você mudou, mas funcionou. A única coisa que percebi é que colocou um comando no tratamento do erro. Com isso a mensagem que deveria sair, não sai. Ou seja, se eu colocar vazio, vem uma box com mensagem do Excel dizendo "Tipos incompatíveis". E se eu coloco data de 30/02, ele retorna a consulta sem nenhum cheque. Eu gostaria que saísse com aquela msgbox que coloquei. Será que tem jeito?
Obrigado mais uma vez pela ajuda.

Edmilson

 
Postado : 04/07/2013 3:44 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Caso sua dúvida foi resolvida, lembre se de marcar sua postagem como resolvida!!

viewtopic.php?f=7&t=3784

Att

 
Postado : 04/07/2013 5:59 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

edcurita,

Bom Dia!

Sim, pode sim! Na verdade, foi falha minha deixar aqujele MsgBox ali do jeito que ficou. Na verdade, coloquei aquilo ali somente para saber o que estava acontecendo. Por que o código parava ali e que tipo de erro era. Pode retirar a msgbox normalmente e habilitar novamente a sua linha (como estava antes). Basta apagar e retirar o (') no início da sua linha.

O problema com seu código era bem outro: Quando você selecionava, inicialmente, a faixa na planilha LANCAMENTO, ele ficava selecionado e também você mudava e fica na outra planilha após a execução do código. Quando tentava executar o código novamente, já havia uma seleção feita e a ainda não estava na planilha LANCAMENTO.

O que fiz foi: quando você clica no botão VOLTAR, retira-se a seleção anteriormente setada e volta a selecionar a aba LANCAMENTO.

 
Postado : 05/07/2013 4:39 am
(@edcurita)
Posts: 67
Estimable Member
Topic starter
 

Wagner,

Perfeito. Funciona como eu queria.

Obrigado.

PS. Neste mesmo projeto eu fiz uma mensagem sobre um loop desmembrando inicial e final de talão. Será que consegue me ajudar?

Grande abraço.

Edmilson

 
Postado : 05/07/2013 7:58 am