Ir ao conteúdo
  • Cadastre-se

Excel ESC só interrompe macro nos primeiros 5 segundos


Posts recomendados

Olá,

 

Na época do XP, rodava macros demoradas, que iam dando informações de em que ponto da execução estavam, através de mensagens na barra de status.

Em qualquer momento durante a execução, eu podia teclar ESC para interromper ou inspecionar variáveis.

 

Agora uso o Office Plus 2013, e as mensagens na barra de status só aparecem nos primeiros 5 segundos de execução, e o ESC também só consegue interromper a execução nos primeiros 5 segundos. Depois disso, a macro roda normalmente, mas a tela fica congelada, e o ESC não interrompe mais.

 

Se durante o desenvolvimento da macro, sem querer, ela entrar em loop, tenho que encerrar o processo do Excel pelo gerenciador de tarefas.

 

Alguém sabe o que pode estar havendo?

 

Obrigado,

 

Jimmy San Juan

Link para o comentário
Compartilhar em outros sites

Vamos esperar alguem com o 2013, mas eu usei o 2013 algumas vezes e nao tive esse problema de nao conseguir interromper.

Eu uso Alt + Pause Break

Qto ao Loop infinito sugirio no desenvolvimento depurar o codigo antes para ver se mesmo esta funcionando corretamente, as vezes esquecemos, sei disso, quem nunca, mas fica a sugestão. 

Link para o comentário
Compartilhar em outros sites

@CasaDoHardware obrigado pela resposta.

 

Percebi algo que agora me faz pensar que o problema está no Windows.

 

Após os 5 segundos, quando a tela do Excel para de ser atualizada e o ESC não interrompe a macro, no título da a janela do Excel aparece "(Não está respondendo)". Aparentemente o Windows é quem coloca o Excel em status de não responde, e fica aguardando ele responder. Imagino que com esse status do Excel, o Windows deixa de passar o que está sendo teclado para o Excel, e assim o Excel não processa o ESC.

 

Pergunto: quais os critérios para o Windows definir que o programa não está respondendo?

Link para o comentário
Compartilhar em outros sites

A medida que vou percebendo novos aspectos do problema, vou postando aqui para ajudar a chegar à solução.

 

Coloquei em um ponto de execução da macro, dentro do loop, o comando

Rows(1000).Delete

que é executado algumas vezes por segundos.

 

O Windows passou a não colocar mais o Excel no status "(Não está respondendo)". Com isso a tecla ESC consegue interromper a execução, e a tela é atualizada.

 

Aparentemente, de alguma forma que desconheço, esses comando indica ao Windows que o Excel está respondendo.

Link para o comentário
Compartilhar em outros sites

Corrigindo minha dica, é Ctrl + Pause Brake e nao Alt.

Qto a nao respondendo, não é um problema do excel e sim do Windows.

Falta de memoria suficiente para executar a tarefa, costuma acontecer com planilhas com muitos dados, embora algumas vezes acontece com planilhas com poucas informações tambem.

Sugestão faça um upgrade de memoria e veja se o problema persiste. Se nao resolver provavelmente vai melhorar o desempenho.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

O CTRL+Pause Brake cai no mesmo caso do ESC, ou seja, o WIndows não repassa a tecla para o Excel.

 

Fuçando, acabei fazendo uma mudança que resolveu o problema.

Entrei nas propriedades do Excel, e assinalei "Executar este programa em mode de compatibilidade". Coloquei Windows 8, e funcionou.

 

Achei estranho o fato de eu já estar usar Windows 8 (8.1 na verdade).

 

@CasaDoHardware, agradeço pela sua ajuda.

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 10 meses depois...

Novidades no caso acima.

 

Mesmo tendo praticamente resolvido o problema com o modo de compatibilidade WIn8, fiz algo que resolveu o problema de vez: coloquei dentro do loop principal o comando DOEVENTS. A vantagem é que quando eu entrava em debug, ao dar play novamente ficava na tela de desenvolvimento VBA. Com esse comando acima, consigo até voltar pra planilha durante a execucão, com o ALT-TAB.

 

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...