Ir ao conteúdo
  • Cadastre-se

Demora para executar macro para inserir linha no Excel


Posts recomendados

Bom dia,

 

Gostaria de ajuda para resolver um problema de demora para o Excel processar uma macro. O arquivo está salvo como .xlsb.

Ao inserir células, o Excel está levando um certo tempo para realizar a ação. Esta planilha está trabalhando com no máximo 300 linhas e mesmo assim demora. Ao executar a etapa: Selection.Insert Shift:=xlDown o Excel chega a travar e aparece a msg: "(Não está respondendo)" mas depois volta ao normal.

Quando tempo 

Criei esta macro para inserir uma linha de cadastro de informações e carregar a formatação condicional. Tentei retirar a formatação condicional e mesmo assim a demora continua a mesma.

Não entendo quase nada de programação e peço auxilio de vocês. Obrigado!!

 

A macro que montei:

 

 

Public Sub inserir_linha()

 

Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

ActiveSheet.Unprotect "senha"

 

    Range("B3:v3").Select

    Selection.Copy

    Selection.Insert Shift:=xlDown

    Range("B3").Select

    Application.CutCopyMode = False

    Selection.ClearContents

    Range("c3").Select

    Selection.ClearContents

    Range("f3:J3").Select

    Selection.ClearContents

    Range("k3").Select

    Selection.ClearContents

    Range("l3").Select

    Selection.ClearContents

    Range("m3").Select

    Selection.ClearContents

    Range("n3").Select

    Selection.ClearContents

    Range("o3:r3").Select

    Selection.ClearContents

    Range("B3").Select

    ActiveSheet.Protect "senha", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowDeletingRows:=True

    Application.ScreenUpdating = True

    Application.Calculation = xlCalculationAutomatic

 

End Sub

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Boa tarde Vars

 

Minha praia não é VBA e sim fórmulas e funções, mas observei que você usa desnecessariamente o SELECT o que pode causar demora na execução da macro.

 

Não testei, apenas retirei os Select e simplifiquei o ClearContents, onde você repetia a mesma célula e executava por etapas.

Veja se ajudou.

Public Sub inserir_linha() Application.ScreenUpdating = FalseApplication.Calculation = xlCalculationManualActiveSheet.Unprotect "senha"     Range("B3:V3").Copy    Selection.Insert Shift:=xlDown    Range("B3").Select    Application.CutCopyMode = False    Range("C3,F3:K3,M3:R3").ClearContents    Range("B3").Select    ActiveSheet.Protect "senha", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowDeletingRows:=True    Application.ScreenUpdating = True    Application.Calculation = xlCalculationAutomatic End Sub

Dê retorno;

 

e foi útil, clique em Curtir

 

[]s

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

Patropi,

 

Obrigado pela dica, fiz a alteração na macro conforme orientou mas infelizmente a demora continua a mesma.

 

Depurei a macro no VBA e a demora acontece mesmo na etapa de incluir a linha. 

 

Sem usar a macro tentei incluir ou excluir linhas nesta planilha e a demora em processar permanece.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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