Jump to content

Recommended Posts

Posted

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

Posted

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

Posted

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

Posted

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

Posted

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

Posted

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

Posted (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 by edsudani

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.