none
Otimizar código para ficar mais rapida a execução RRS feed

  • Pergunta

  • Bom dia

    Tem essas duas macros que são lentas mas executam suas tarefas certinho, mas queria melhorar o desempenho, alguém sabe como fazer isso?

    Sub BelTab_01() Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Sheets("Codi").Select Range("DA7").Copy Range("DF3").PasteSpecial xlPasteValues Range("DA8:DO4007").Copy Range("B8:P4007").PasteSpecial xlPasteValues Application.Calculation = xlCalculationAutomatic Range("DC3").Copy Range("DD3").PasteSpecial xlPasteValues Range("LS6:LW6").Copy Range("L5").PasteSpecial xlPasteValues Range("U5").Select Selection.ClearContents Range("NY9:NY4007").Copy Range("S9").PasteSpecial xlPasteValues Range("NZ9:NZ4007").Copy Range("U9").PasteSpecial xlPasteValues Range("U5").Select Selection.ClearContents Sheets("Decodi").Select Range("Y3").Select Selection.ClearContents Application.ScreenUpdating = True End Sub

    Sub Cop_Tabel_01()
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    Range("H57:L57").ClearContents
    Sheets("Codi").Select
           Range("DA7").Copy
         Range("DF3").PasteSpecial xlPasteValues
    
        Range("DA3899:DO4007").Copy
        Range("B3899").PasteSpecial xlPasteValues
        
    Application.Calculation = xlCalculationAutomatic
    Range("DC3").Copy
    Range("DD3").PasteSpecial xlPasteValues
    
    Range("LS6:LW6").Copy
    Range("L5").PasteSpecial xlPasteValues
    
    Range("NY3899:NY4007").Copy
    Range("S3899").PasteSpecial xlPasteValues
    Range("NZ3899:NZ4007").Copy
    Range("U3899").PasteSpecial xlPasteValues
    
    Range("U5").Select
    
    Sheets("Decodi").Select
    Application.Calculation = xlCalculationManual
    '==================================================
        Range("DC64:DZ64").ClearContents
     '=========================Cabeça===================
        Range("DZ66:ES66").Copy
        Range("DC64").PasteSpecial xlPasteValues
    '==========================Tabela===================
        Range("DZ94:ES100").Copy
        Range("DC83").PasteSpecial xlPasteValues
    '==========================NºTabela================
        Range("C86").Copy
        Range("I88").PasteSpecial xlPasteValues
    '================SubPosiçoes=======================
        Range("V65").Copy
        Range("V64").PasteSpecial xlPasteValues
    '=================Armazenar =======================
        Range("DC66:DV66").Copy
        Range("DC53").PasteSpecial xlPasteValues
    '==================================================
    Application.Calculation = xlCalculationAutomatic
         Range("Y3").Select
         Selection.ClearContents
    Application.ScreenUpdating = True
    End Sub
    


    quarta-feira, 2 de dezembro de 2015 11:28

Respostas

  • Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum. Uma janela aparecerá onde você deverá colar seu código cru na caixa de texto à esquerda. Então, selecione a opção Vb.Net na caixa de combinação que você verá em cima à esquerda e depois clique no botão Inserir.

    ---

        'Substitue:
        Range("A1:A100").Copy
        Range("B1:B100").PasteSpecial xlPasteValues
        
        'Por:
        Range("B1:B100") = Range("A1:A100")
    


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    quarta-feira, 2 de dezembro de 2015 17:11
    Moderador

Todas as Respostas

  • Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum. Uma janela aparecerá onde você deverá colar seu código cru na caixa de texto à esquerda. Então, selecione a opção Vb.Net na caixa de combinação que você verá em cima à esquerda e depois clique no botão Inserir.

    ---

        'Substitue:
        Range("A1:A100").Copy
        Range("B1:B100").PasteSpecial xlPasteValues
        
        'Por:
        Range("B1:B100") = Range("A1:A100")
    


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    quarta-feira, 2 de dezembro de 2015 17:11
    Moderador
  • Na próxima, vou seguir a orientação.

    vou testar,valeu



    • Editado Capileh quinta-feira, 3 de dezembro de 2015 15:04
    quinta-feira, 3 de dezembro de 2015 11:21