Olá Pessoal Gostaria de aprender algumas técnicas para poder otimizar o código e agilizar o processamento, pois tem botões que estão levando 3-5 segundos para processar.
Olhem esse código por exemplo:
Sub ERASELINHA2()
Dim Scel As Long
Application.EnableEvents = False
Cells(ActiveCell.Row, "A").EntireRow.Delete
Scel = ActiveCell.Row - 9
Sheets("Impostos").Select
Cells(Scel, "A").EntireRow.Delete
Sheets("Estimativas Finais").Select
Cells(Scel, "A").EntireRow.Delete
Sheets("Order List").Select
Cells(Scel, "A").EntireRow.Delete
Sheets("Cadastro").Select
Application.EnableEvents = True
End Sub
é Um código para apagar a linha d 4 guias diferentes, porém gostaria de ao invés de usar sheets("guia").Select usar o comando para apagar referenciando a guia que quero (evitando que ter que fazer o código entrar efetivamente em cada guia e voltando a ultima, um detalhe é que essas guias tem várias rotinas para manter a formatação, ocultar guias, menus, etc) Tenho certeza que é isso que deixa lerdo.
Quero aplicar o mesmo conceito no código (cria novas linhas em 4 guias diferentes):
Sub NOVALINHA()
Dim numerocelula As Integer
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Copy
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown
numerocelula = ActiveCell.Row - 10
Sheets("Impostos").Select
Cells(numerocelula, "A").EntireRow.Select
Application.CutCopyMode = False
Selection.Copy
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown
Sheets("Estimativas Finais").Select
Cells(numerocelula, "A").EntireRow.Select
Application.CutCopyMode = False
Selection.Copy
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown
Sheets("Order List").Select
Cells(numerocelula, "A").EntireRow.Select
Selection.Copy
ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown
Sheets("Cadastro").Select
ActiveCell.Offset(0, 2).Range("A1:C1").Select
Selection.ClearContents
ActiveCell.Offset(-1, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "1"
ActiveCell.Offset(1, -3).Range("A1:C1").Select
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = ""
ActiveCell.Offset(0, -3).Range("A1:C1").Select
End Sub
Qualquer ajuda é bem vinda. Vlw
Postado : 18/08/2012 1:58 am