Ir ao conteúdo

Excel Macro executa errado pelo botão


Ir à solução Resolvido por Midori,

Posts recomendados

Postado

Boa tarde,

 

Tenho um  macro que se eu executar com F8 ou F5 direto no código ela funciona e faz tudo certo, porém se eu atribuir ela a um botão ela funciona, mas faz errado. 

Alguém sabe dizer o que pode ser?

(Já criei uma nova planilha com novos módulos, nomes diferentes, nome das subs diferentes e continua não funcionando pelo botão).

  • Solução
Postado

@Suporte Seu código acessa diversas planilhas e faz muito uso de Select, ActiveCell, etc. E como não fez referência explícita a nenhuma, pode acontecer de ativar determinada aba no momento indevido. Para identificar esses casos você pode verificar o nome da aba ativa nas atribuições dos valores (ActiveCell) seleções, etc.

 

Antes da chamada a chama_copia_e_cola_dados p.ex, com F5 é a planilha Janeiro que está ativa. E com o botão é outra,

print.png.3e6b9577dfe77c59d2ff6a7b4fc51c57.png

 

Aí bastaria ativar a planilha Janeiro antes de chamar o procedimento: ThisWorkbook.Sheets("Janeiro").Activate

 

Mas se a aba mudar de nome no próximo mês, Fevereiro p.ex, teria que editar o código. Para evitar isso você pode declarar uma variável e atribuar a planilha da macro.

 

Dim PlanMes   As Worksheet
    
Set PlanMes = ThisWorkbook.ActiveSheet

...

PlanMes.Activate

 

Porém o ideal é sempre usar essa referência para não ter esse tipo de problema, p.ex,

Dim PlanMes   As Worksheet
    
Set PlanMes = ThisWorkbook.ActiveSheet
    
'RETIRA O FILTRO NA PLANILHA ATIVA
PlanMes.Range("A1").AutoFilter

...

Call PlanMes.Columns("C:D").Insert(Shift:=xlToRight)

 

Postado

@Midori Entendi, é isso que acontece então. Sobre o nome da planilha, ela só vai mudar quando apertar o botão "Novo Resumo", nele tem uma macro que muda o nome da planilha sozinho conforme o mês atual.

 

Fiz o teste aqui, apenas colocando "Sheets(1).select" antes do " call chama_copia-e_cola_dados" e funcionou certinho.

Coloquei desse jeito pois sempre vai ser a Sheets(1).

 

Muito obrigado pela ajuda, de verdade.

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