Narsi, como deve saber toda a ajuda em Foruns, são voluntárias e dependem de tempo disponível de cada um, e a sua questão não é tão simples, demanda de analise da todo um conjunto, e consequentemente tempo.
Eu já havia baixado este seu arquivo no Forum do Tomas no Tópico abaixo :
Opção Alterar duplicando dados - http://www.tomasvasquez.com.br/forum/vi ... 7056#p7056, e estou procurando analiza-lo por partes, de inicio tenho a dizer que você repetiu e misturou algumas rotinas, por exemplo :
Você definiu em um Modulo Publico a Rotina :
Public Sub DefinePlanilhaDados() - onde tem as definições das Pastas e Abas, e depois em cada Formulário, em vez de fazer somente a chamada a rotina, você repetiu em todos os Formulários, definindo como:
Private Sub DefinePlanilhaDados()
O erro de duplicidade ainda não consegui testar, pois tem de arrumar toda a parte inicial até chegar nesta questão, mas quanto ao outro erro (erro de automação), o mesmo acontece pelo fatores :
No Formulário frmClientes o botão btnSair, você está utilizando Hide para ocultar o Formulário, ou seja o mesmo continua aberto em memória, e quando volta a ter o Focu não recarrega o mesmo.
No Formulário frmContatos o Botão btnSair você está utilizando a propriedade - Unload Me, ou seja Fechando o Formulário Contato e com isto chamando o Evento UserForm_QueryClose onde é Fechada a Conexão com a Pasta Banco_Dados.Xls e por consequencia não encontrando a aba "Clientes" definido na Constante nomePlanilhaClientes, as quais foram atribuidas na linha : Set wsClientes = wbCadastro.Worksheets(nomePlanilhaClientes).
Como pode ver, não é somente uma questão de dizer apague ou modifique tal linha, e sim é um conjunto de ações onde as reações (os erros) são diversos.
Não posso prometer que resolverei isto da noite pro dia, mas se tiver um pouco mais de paciência, podemos juntos ir acertando aos poucos.
Uma dica para ver as ações que citei acima, é ir acompanhando a rotina Passo a Passo utilizando a Tecla F8, abra seu arquivo "Cadstro.xls", e no editor do VBA acesse o Modulo, modAuxiliar, posicione o cursor na rotina Public Sub AbreFormCadastro() e vá teclando F8, com isto estará acompanhando linha a linha ficando mais fácil identificar os erros.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 21/11/2011 5:45 pm