Ir ao conteúdo
  • Cadastre-se
Charley Rocha

Excel Erro atípico VBA Excel

Posts recomendados

Olá pessoal,

 

Estou enfrentando uma situação muito estranha em um código que estou escrevendo. Se eu rodo a macro, dá um erro em tempo de execução. Se eu executo a macro em modo "debug", linha por linha apertando F8, ela roda normalmente...

 

A parte do código que dá esse erro é a seguinte:

 

Public Sub Relatorio()


On Error GoTo LineError
'Application.ScreenUpdating = False

Load PleaseWait

PleaseWait.Show vbModeless


Dim IsolSaida, Report, Report2, IsolBS As Worksheet

lin = 1
pag = 74
nextpag = 1

Ele dá erro na linha "Load PleaseWait", que é um formulário que eu tenho, e também na linha debaixo, que mostra o formulário.

 

Mas como eu disse acima, em modo "debug", rodando linha por linha, ele executa normalmente. Quando eu peço pra carregar o Form ele ativa o evento de inicialização do mesmo, executa o que tem lá e segue o resto do código.

 

O erro que apresenta quando eu rodo a macro no modo "user" é 

 

image.png.8355b04777515c8eceba53cee922e797.png

 

Alguém pode me salvar?

 

 

Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Charley Rocha  Nossa, esse caso é muito bizarro mesmo. Acontece o mesmo com uma macro que uso aqui no trabalho. O pessoal da infra já tentou de tudo (atualizar OS, Office, etc) e continuo com o mesmo problema.

 

As únicas soluções que consegui são toscas, mas servem pra quebrar um galho no desespero:

1) Tente rodar o código em outra máquina. Trabalho numa área com 3 colaboradores e minha máquina é a única que apresenta esse problema, a dos dois colegas do lado rodam sem apresentar nenhum erro.

2) Adicione uma "trava" no código na linha que apresenta o problema, clicando na lateral do código como na imagem abaixo:

image.png.87c47d165b1bdcb2beab2e3b6d521b12.png

Assim, você executa o código até a linha anterior a esta, executa a linha problemática via F8 e em seguida, "dá play" no código novamnete (F5). É a única maneira de trabalhar caso eu esteja sozinho.

 

Vou inclusive seguir o tópico, pra ver se alguém tem uma solução de verdade hehehe

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Hanner O problema é que eu estou automatizando uma rotina do setor inteiro. Não pode ficar gambiarrado de jeito nenhum. Se fosse só para meu uso sua solução ia quebrar o galho mesmo...

 

Vamos ver se alguém consegue nos ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, @Charley Rocha

 

Consegue anexar o arquivo compactado aqui para darmos uma olhada?

Mas uma situação já lhe adianto: evite ao máximo dar nomes às suas variáveis que sejam idênticos à nomes internos usados pelo VBA. Por exemplo, você declarou uma variável com o nome "lin" e lin é um nome interno. Mude, por exemplo, para Lin_1 ou mesmo Linha (eu prefiro usar nomes de variáveis em português mesmo). Isso evita conflitos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Edson Luiz Branco Obrigado por responder.

 

Eu acabei de descobrir o problema. O erro acontecia porque tinha uma linha de código errada no evento de inicialização do UserForm que eu estava tentando carregar. Só que o VBA me mostrava erro na linha de código da macro, não no evento onde o erro de fato acontecia. Pra testar, eu criei outro form em branco e referenciei ele ao invés do outro e a macro rodou.

 

Aí tudo o que eu tive que fazer foi corrigir o código do evento do UserForm e agora está tudo beleza.

 

Mas ainda fica a dúvida bizarra de por que ele dava erro ao rodar a macro em modo "user" e não dava erro ao rodar em modo "debug", executando linha por linha ao apertar F8...

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que resolveu. Mas a parte do F8 passar direto pelo erro ainda me intriga

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!