Notifications
Clear all

Bug nas macros ??

12 Posts
5 Usuários
0 Reactions
1,851 Visualizações
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Tenho uma planilha cheia de Macros, e reparo que as vezes quando pulo de uma aba pra Outra , normalmente acionada por Macro e estando esta oculta, figuras ou pertes de celulas de uma outra sobrepoe a que eu abri, dai eu, sem usar macro, aciono outra Aba e retorno e volta ao normal .

Que pode ser isso ?

Andre

 
Postado : 12/01/2016 9:20 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

fazerbem,

Bom dia!

Não posso afirmar com precisão, pois em informática tudo é muito complexo. Isso que você relata me parece com memória RAM ou memória de vídeo insuficientes na máquina que está executando o arquivo.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 12/01/2016 9:25 am
(@edcronos2)
Posts: 346
Reputable Member
 

tambem já sofri com esses efeitos, é raro mais acontece
ao meu ver é como um vazamento de memoria ocasionado por uma não tão boa integração entre vba e excel

 
Postado : 12/01/2016 9:39 am
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

tambem já sofri com esses efeitos, é raro mais acontece
ao meu ver é como um vazamento de memoria ocasionado por uma não tão boa integração entre vba e excel

Oi,

Parece ser isso mesmo que acontece, e chato pacas, e vou tentar o seguinte:

estando eu na ABa 1 ao acionar a Macro indo pra Aba 2 por exemplo que ta oculta, vou adicionar 2 novos Sheets para voltar a aba 1 e depois ir pra Aba 2 de novo, Fiz isso uma vez e deu certo .

Outra coisa que percebo, é que do nada eu to mexendo numa das abas e do nada a aba se muda pra outra , e depois de estando muito tempo com o excel aberto isso se torna constante e atrapalha bem a navegaçao.

O fato é que uso muito essa planilha de vendas que desenvolvi, e pra se ter uma ideia de tao complexa que é, existem hoje cerca de 70 macros e mais de 85 abas, Faco tudo aqui , mando emails a lojas, solicito ao fabricante valor de frete, solicito ao clinente aprovacao de pedido, faco a contabilidade das vendas etc e tal, rsrs é bem complexa e muito detalhista.

Se tiverem uma ideia eu agradeço.

Andre

 
Postado : 12/01/2016 9:53 am
(@edcronos2)
Posts: 346
Reputable Member
 

nunca procurei uma solução pq como falei é raro acontecer, e a minha planilha é apenas um projeto não finalizado
nunca tive problemas com mudança de aba sozinha,
no meu o embaralhamento acontece mesmo não mudando de aba mas ainda não defini o motivo e como é muito raro acontecer eu não me importei muito

mas vamos para algumas analises

eu acho 85 abas exagerado, se forem poucas informações se pode juntar em poucas abas e pegar os dados por condição de uso
se tiver muitos dados aconselho passar para um BD

excel conforme vai passando o tempo de uso continua aumenta o uso de memoria, e por incrivel que pareça mesmo sem mexer na planilha
talvez ocasionado por gravação de segurança de eventos, copia de dados na memoria para evitar perdas por gravação inapropriada de outros aplicativos,
as macros mesmo declarando as variáveis e arrays como se diz por aí, no fim de processo não limpa completamente nem eficientemente a memoria
se tiver pouca memoria disponível e uma planilha muito grande esse processo pode ser sim a causa

no meu caso eu tenho 8G de memoria ram um i3 e meu office é 2010 32bit
macros eu acho que tenho mais que vc,
a planilha pode chegar a ter mais abas que a sua pq essas abas são criadas de acordo com a necessidade, atualmente tenho feito teste com algo em torno de 5 abas"pode ser mais ou menos", de 5000 a 7000 linhas e de 100 a 300 colunas
ao meu parecer o excel se confunde quando o vba mexe na exibição, ou até quando tem uma mudança de tela muito rapida, eu já percebi o embaralhamento com o rola da tela com o scroll do mouse, a area da planilha congelada ficou mostrando imagens de celulas diferentes

 
Postado : 12/01/2016 10:35 am
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

pois entao fiz o seguinte,

Sub G4Cliente()

Sheets("Clientes").Visible = True

Sheets("Clientes").Select
Sheets("Resumo").Select
Sheets("Clientes").Select

End Sub

parece que resolveu, pelo menos nesta Aba, se der em outra adiciono os Sheets !

Quanto a eu ter muita Aba, pior que preciso sim e tenho outras que sao criadas e excluidas automaticamente conforme os pedidos que recebo e envio. Como eu disse é bem sistematica essa minha Tabela.

Abracos.

 
Postado : 12/01/2016 10:48 am
(@edcronos2)
Posts: 346
Reputable Member
 

cada um sabe melhor suas necessidades
eu considero que existe sempre mais de uma maneira de se ter o mesmo resultado, por isso mesmo sempre testo coisas diferentes para minha planilha
particularmente não considero o excel ideal para projetos tão grandes e complexos , podendo servir como interface mas não como um todo
se um dia eu concluir o meu eu pretendo migrar para outra linguagem, talvez a interface seja o excel mesmo pq é muito pratico

 
Postado : 12/01/2016 11:02 am
(@mprudencio)
Posts: 2749
Famed Member
 

Sou totalmente fã de tudo centralizado qdo se diz respeito a excel, porem como vc mesmo disse tem um arquivo enorme 85 abas 70 macros, nem quero imaginar o numero de linhas, mas neste caso especifico, vc tem duas soluções:

Solução 1 Aumentar em MUITO a memoria RAM de sua maquina. (No futuro nao sera suficiente, pois o volume de dados so tende a crescer.

Solução 2 dividir em sub planilhas tipo fornecedor 1 documento, clientes 1 documento, contas a pagar/receber outro documento. e dependendo do caso( mais precisamente VOLUME DE DADOS), reiniciar o banco de dados mensalmente, especialmente no que diz respeito a pedidos dos clientes.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 12/01/2016 4:52 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Nem imagina com e minha planilha rsrsr, da ate gosto de trabalhar nela.

 
Postado : 12/01/2016 6:46 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Concordo com tudo o o que foi dito pelos colegas, e com certeza não fica somente nisto, a máquina, memoria, processador influi bastante, mas ja vi travamentos em maquinas poderosas com uso de planilhas bem menores, e as razões, por experiencia própria era a questão das rotinas mau dimensionadas ou amarradas, propriedades mau utilizadas, quando digo mau utilizadas quero dizer seta-las como FALSE e não reverter no final, uma vez, quando ainda iniciante, não que seja experiente agora, tive um problema mais ou menos parecidos e somente consegui resolver com a ajuda de um colega experirente de um forum la de portugal, e tudo porque eu tinha utlizado varias vezes a propriedade "Application.ScreenUpdating = False" e não reverter para TRUE, isto é só uma dica, o ideal seria analisar todas as rotinas e procurar limpar os lixo ou ajustar instruções repetitivas e desnecessárias como "Select" qdo não precisa selecionar, Application.Visible = False, não limpar as variaveis com Nothing, estas são só pequenas questões, como eu disse o correto é reanalisar o contexto por inteiro, o que poder´resolver ou não, mas afirmar aqui qual o motivo de seu modelo acontecer isto é impossível.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 12/01/2016 8:46 pm
(@edcronos2)
Posts: 346
Reputable Member
 

mauro eu entendo que dimensionar erradamente as rotinas leva a erros as vezes dificeis de analizar
no meu caso eu tenho o mesmo tipo de erro até com o scroll do mouse sem acionar nenhuma macro
a tela fica sobreposta as vezes sou obrigado a fechar e reabrir o excel para não perder as informações da aba em questão, normalmente e excluo a aba que estou trabalhando por ser apenas testes

eu não me apoio no simples fato de que uma coisa está dando erro , eu quero saber o pq para assim saber lidar com o erro
erro de macros é uma coisa, por exemplo, vba não lida bem com colunas ocultas, mas linhas ocultas vai numa boa
portanto nunca coloque uma função de vba em uma celula de coluna oculta

sobreposição de tela é uma vazamento das propriedades da planilha que controla a exibição de tela, ela se confunde na hora do refresh e pega area diferente,

 
Postado : 12/01/2016 9:06 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Bem eu fiz o seguinte e deu certo, entro na aba, volto a anterior e retorno a aba que quero entrar, não deu mais o problema.

Sheets("Clientes").Visible = True

Sheets("Clientes").Select
Sheets("Resumo").Select
Sheets("Clientes").Select

Mas o erro de as vezes mudar de aba sozinho sem acionar macro nem nada, as vezes da ainda, mas estou vndo se esta relacionado a derepente meu note estar sem muita refrigeracao devido ficar muito próxima a parede, dai não refrigerando bem. Qualquer coisa eu falo

 
Postado : 13/01/2016 4:49 pm