Jump to content
Sign in to follow this  
edsudani

Salvar planilha usando código -- retorno

Recommended Posts

edsudani

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

Share this post


Link to post
Share on other sites
acao

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

Share this post


Link to post
Share on other sites
edsudani

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

Share this post


Link to post
Share on other sites
acao

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

Share this post


Link to post
Share on other sites
edsudani

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

Share this post


Link to post
Share on other sites
acao

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

Share this post


Link to post
Share on other sites
edsudani

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • 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.