ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Need Help - How do I stop using select (https://www.excelbanter.com/excel-programming/408798-need-help-how-do-i-stop-using-select.html)

General Specific

Need Help - How do I stop using select
 

The following code checks for data in the first cell in the row and
then copies and pastes the formulas. This pastes the correct formulas
to a row if data is present.

The problem is, Application.screenupdate=false does not work since
each select command turns it back on.

So, this code is slow. how do I fix this?


i = 16
While Not IsEmpty(Cells(i, 1))

Range ("I15")
Selection.Copy
Cells(i, 9).Select
ActiveSheet.Paste
Range("J15").Select
Selection.Copy
Cells(i, 10).Select
ActiveSheet.Paste
Range("K15").Select
Selection.Copy
Cells(i, 11).Select
ActiveSheet.Paste
i = i + 1
Wend

Per Jessen

Need Help - How do I stop using select
 
Hi

No need to select cells, it is slowing down your code.

Look at this:

i = 16
While Not IsEmpty(Cells(i, 1))
Range("I15").Copy
Cells(i, 9).Select
ActiveSheet.Paste Destination:=Cells(i, 9)
Range("J15").Copy
ActiveSheet.Paste Destination:=Cells(i, 10)
Range("K15").Copy
ActiveSheet.Paste Destination:=Cells(i, 11)
i = i + 1
Wend

Best regards,
Per

"General Specific" skrev i meddelelsen
...

The following code checks for data in the first cell in the row and
then copies and pastes the formulas. This pastes the correct formulas
to a row if data is present.

The problem is, Application.screenupdate=false does not work since
each select command turns it back on.

So, this code is slow. how do I fix this?


i = 16
While Not IsEmpty(Cells(i, 1))

Range ("I15")
Selection.Copy
Cells(i, 9).Select
ActiveSheet.Paste
Range("J15").Select
Selection.Copy
Cells(i, 10).Select
ActiveSheet.Paste
Range("K15").Select
Selection.Copy
Cells(i, 11).Select
ActiveSheet.Paste
i = i + 1
Wend



Bob Umlas, Excel MVP

Need Help - How do I stop using select
 
First, it's Application.Screenupdating = False

Next:
Application.Calculation = xlCalculationManual
i = 16
While Not IsEmpty(Cells(i, 1))
Range ("I15:K15").Copy Cells(i,9)
i = i + 1
Wend


But even faster (no looping):
Sub DoItAll()
'Untested
Lastrow=Range("A16").end(xlDown).Row
Range("I15:K15").Copy Range("I16").resize(LastRow-15,3)
End Sub

HTH
Bob Umlas
Excel MVP
"General Specific" wrote:


The following code checks for data in the first cell in the row and
then copies and pastes the formulas. This pastes the correct formulas
to a row if data is present.

The problem is, Application.screenupdate=false does not work since
each select command turns it back on.

So, this code is slow. how do I fix this?


i = 16
While Not IsEmpty(Cells(i, 1))

Range ("I15")
Selection.Copy
Cells(i, 9).Select
ActiveSheet.Paste
Range("J15").Select
Selection.Copy
Cells(i, 10).Select
ActiveSheet.Paste
Range("K15").Select
Selection.Copy
Cells(i, 11).Select
ActiveSheet.Paste
i = i + 1
Wend


General Specific

Need Help - How do I stop using select
 
Wow!

Thanks guys!



All times are GMT +1. The time now is 07:50 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com