Ir para o conteúdo
edsudani

Salvar planilha usando código -- retorno

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

Editado por edsudani

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.