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
edcurita,
Boa Tarde!
Veja se é assim:
Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)
Atenciosamente
Wagner Morel
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
Boa noite!!
Caso sua dúvida foi resolvida, lembre se de marcar sua postagem como resolvida!!
Att
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
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.
Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)
Atenciosamente
Wagner Morel
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