gtsalikis, não tenho como ver o seu modelo no momento, e nas dicas do Adolfo, a instrução "Application.ScreenUpdating" até chega a dar uma melhora, mas analisando pelo código postado, percebe-se que uma das causas da perda de performance são as instruções repetitivas e algumas desnnecessárias, que geralmente são adicionadas quando da utilização do recurso "Gravador de Macro" que capta todas as ações e muitas das instruções podem ser suprimidas ou ajustadas.
Então nesta rotina postada acima, temos :
Para utilizarmos o Copy e o Paste :
6 vezes a instrução : Sheets("Controle Prazos").Select, mais
6 vezes Range("xxx:xxxxxxx").Select, mais
6 vezes : Sheets("Cassiano").Select, mais
6 vezes : Range("xx").Select
Ou seja, não necessitamos utilizar instruções "SELECT".
Nestas linhas :
Sheets("Controle Prazos").Select
Range("A3:A1048576").Select
Selection.Copy
Sheets("Cassiano").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Utilizamos a Instrução With indicando somente uma vez a aba que que queremos trabalhar :
Ficando da seguinte maneira :
With Sheets("Controle Prazos")
.Range("A3:A1048576").Copy
Sheets("Cassiano").Range("A3").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range("B3:B1048576").Copy
Sheets("Cassiano").Range("B3").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range("F3:F1048576").Copy
Sheets("Cassiano").Range("C3").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range("C3:C1048576").Copy
Sheets("Cassiano").Range("D3").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range("AB3:AB1048576").Copy
Sheets("Cassiano").Range("E3").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Range("AC3:AC1048576").Copy
Sheets("Cassiano").Range("F3").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End With
Lembrando, que se não tivermos formulas nas celulas ainda podemos utilizar "Copy Destination".
Espero que tenha conseguido me fazer entendido, 6ª f é brabo, e tive de parar varias vezes, só agora consegui enviar, mais tarde se der, la em casa baixo seu exemplo e dou uma analisada melhor, que até nas linhas que postei acima ainda dá para dar mais uma enxugada.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 02/08/2013 11:59 am