edsudani Posted February 22, 2013 at 05:54 PM Report #496667 Posted February 22, 2013 at 05:54 PM Boas. A tempos atrás recebi ajuda de um colega do fórum e segui suas orientações. Resolveram o problema para o aplicativo em questão. Remodelei o programa original reduzindo o nº de formulários (de 24 para 6) . O código que também era muito extenso ficou "enxuto" e tudo funciona normalmente. Porém retornou o velho problema do delay para salvar a planilha, cerca de 5 segundos. O link para acesso ao aplicativo é este: http://www.sendspace.com/file/1hix46 Se você baixar o arquivo verificará que ao introduzir um único valor em qualquer célula já é suficiente p/ gastar 5 segundos salvando tudo. Mesmo que não entre dados na planilha isso acontece. Abra o projeto e clique em Obra Mundial, agora salve sem introduzir nada e observe o problema. É esse. Alguém poderia me ajudar a resolver esse problema? Edison
edsudani Posted February 26, 2013 at 01:37 PM Author Report #497040 Posted February 26, 2013 at 01:37 PM Nenhuma dica? Edison
acao Posted February 27, 2013 at 11:59 AM Report #497242 Posted February 27, 2013 at 11:59 AM boas porque não salvas só quando fechas o ficheiro? assim só está esse tempo quando fecha o ficheiro, quando mudas de form não é necessario os dados ficam na panilha, embora em memoria, apenas poderá dar problema se houver um erro e não for possivel fechar, mas assim também poderá acontecer mas com menos dados por gravar. usa o metodo beforeClose do workbook, em «este livro». cumps acao
edsudani Posted February 27, 2013 at 12:23 PM Author Report #497250 Posted February 27, 2013 at 12:23 PM Acao, muito obrigado pelo retorno. De fato tens razão neste ponto. Mas eu gostaria de entender o que se passa porque o programa é muito pequeno, leve demais para essa demora toda. Se você baixou o arquivo e executo-o percebeu que mesmo sem introduzir nada há um delay ao salvar. Eu gostaria de entender o motivo disso. Fiz uma cópia da planilha somente e injetei dados, neste caso salva imediato sem delay. Já c/ os formulários surge o problema. Há como resolver isso? Edison
acao Posted February 27, 2013 at 11:39 PM Report #497333 Posted February 27, 2013 at 11:39 PM boas estive a verificar e não verifiquei nada que atrasasse significativamente o salvar ( apenas vi uns hide que deveriam ser unload) mas nada de anormal, testei abrir o ficheiro e gravar no botão gravar do ficheiro e demora +- o mesmo tempo, por isso o cod não intrefere, o que pode intreferir é a quantidade de modulos existentes e que poderiam reduzir-se ( eu contei 7 ou 8 com muito pouco cód) por exemplo o moduloSalvar Registo apenas tem o Save, isto pode ser feito mesmo no botão (gasta +- o memo cod que chamar a sub). PS: reduza os modulos ou equacione apenas gravar ao fechar o ficheiro. cumps acao
edsudani Posted February 28, 2013 at 05:22 PM Author Report #497415 Posted February 28, 2013 at 05:22 PM OK, vou verificar como sugeriste. estive a verificar e não verifiquei nada que atrasasse significativamente o salvar ( apenas vi uns hide que deveriam ser unload) mas nada de anormal, Segui a orientação de outro colega p/ reduzir o nº de form's por isso e para não perder (suponho, o Felipe não afirmou isso) os índices não uso a instrução Unload. O fato é que houve uma redução significativa tanto de formulários como de código. Eu usava 24 form's, o código era repetido em 14 deles, era imensa a quantidade de código. Os módulos foram construídos desta forma para facilitar o reprojeto do programa e a conseqüênte solução de erros, somente. O módulo Salvar deverá ser usado por outros formulários usando a instrução Call. Edison
acao Posted February 28, 2013 at 06:55 PM Report #497422 Posted February 28, 2013 at 06:55 PM OK, vou verificar como sugeriste. Segui a orientação de outro colega p/ reduzir o nº de form's por isso e para não perder (suponho, o Felipe não afirmou isso) os índices não uso a instrução Unload. O fato é que houve uma redução significativa tanto de formulários como de código. Eu usava 24 form's, o código era repetido em 14 deles, era imensa a quantidade de código. Os módulos foram construídos desta forma para facilitar o reprojeto do programa e a conseqüênte solução de erros, somente. O módulo Salvar deverá ser usado por outros formulários usando a instrução Call. Edison boas eu não disse o contrário apenas foquei o hide, porque o hide poderia ajudar a gastar tempo no salvar. sabes o que faz o hide?. mas alterei para unload,e alterei o ciclo for de carregamento dos indices, mas não vi melhorias, por isso disse «nada de anormal» e depois de testar o gravar no botão do excel, vi que leva +- o mesmo tempo, por isso o ficheiro está pesado, e como os formulários não os podes reduzir foquei os modulos que esses sim podem ser reduzidos, mas sem ter certeza se haverá melhoria no tempo de demora, na logica melhorá, se o ganho justifica a alteração não sei, não testei. cumps acao
edsudani Posted February 28, 2013 at 09:01 PM Author Report #497444 Posted February 28, 2013 at 09:01 PM (edited) O hide só oculta ou esconde os form's ao contrário de unload que descarrega-os. Mas já agora se o programa como um todo parece estar bom, vou aplicar sua sugestão. E desculpe-me se causeilhe algum mal estar com minhas palavras,OK? Em tempo: Eu tentei abrir nesse mesmo livro uma cópia da planilha Dados, com sucesso. mas quando tento salvar algo retorna erro. Mantive o módulo1 com o código que funcionou a contento noutro aplicativo sem módulos e com 24 form's. Já neste não consegui. se fosse possível abrir uma cópia da planilha Dados e salvar aí os valores introduzidos não haveria o delay, com certeza. Grato pelos conselhos. Edison Edited February 28, 2013 at 09:10 PM by edsudani
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now