ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   copy rows conditionally (https://www.excelbanter.com/excel-programming/326249-copy-rows-conditionally.html)

J_J[_2_]

copy rows conditionally
 
Hi,
The below code, which copies a region from Sheet1 to Sheet4 works with no
trouble at all...
But I need to modify it so that only the rows having an "X" on column A will
be copied.

Can anyone suggest an alteration?

'-------------------------
Sub Macro3()
' Macro3 Macro
Sheets("Sheet1").Activate
Range("A5:F400").Select
Selection.Copy
Range("A1").Select

Sheets("Sheet4").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1:F400").Select

Selection.Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Range("A1").Select
End Sub
'----------------------------
TIA
J_J



gocush[_29_]

copy rows conditionally
 
This can all be done without SELECTING cells or ranges which slows things down.
Also if you filter the source list on col A before copying, you will only
copy the rows which have an x in col A. So this works for me;

Sub CopyFilteredList()

Dim Source As Range
Dim Dest As Range

Set Source = Sheets("Sheet1").Range("A5:F400")
Set Dest = Sheets("Sheet4").Range("A1")

Source.AutoFilter Field:=1, Criteria1:="x"
Source.Copy Dest 'copy to destination
Application.Goto Dest
Dest.CurrentRegion.Sort Key1:=Range("B1"), Order1:=xlDescending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'reset source to show all records
Source.AutoFilter

End Sub

"J_J" wrote:

Hi,
The below code, which copies a region from Sheet1 to Sheet4 works with no
trouble at all...
But I need to modify it so that only the rows having an "X" on column A will
be copied.

Can anyone suggest an alteration?

'-------------------------
Sub Macro3()
' Macro3 Macro
Sheets("Sheet1").Activate
Range("A5:F400").Select
Selection.Copy
Range("A1").Select

Sheets("Sheet4").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1:F400").Select

Selection.Sort Key1:=Range("A2"), Order1:=xlDescending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Range("A1").Select
End Sub
'----------------------------
TIA
J_J




J_J[_2_]

copy rows conditionally
 
It workes here too...thank you gocush.
J_J

"gocush" /delete wrote in message
...
This can all be done without SELECTING cells or ranges which slows things
down.
Also if you filter the source list on col A before copying, you will only
copy the rows which have an x in col A. So this works for me;

Sub CopyFilteredList()

Dim Source As Range
Dim Dest As Range

Set Source = Sheets("Sheet1").Range("A5:F400")
Set Dest = Sheets("Sheet4").Range("A1")

Source.AutoFilter Field:=1, Criteria1:="x"
Source.Copy Dest 'copy to destination
Application.Goto Dest
Dest.CurrentRegion.Sort Key1:=Range("B1"), Order1:=xlDescending,
Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'reset source to show all records
Source.AutoFilter

End Sub

"J_J" wrote:

Hi,
The below code, which copies a region from Sheet1 to Sheet4 works with no
trouble at all...
But I need to modify it so that only the rows having an "X" on column A
will
be copied.

Can anyone suggest an alteration?

'-------------------------
Sub Macro3()
' Macro3 Macro
Sheets("Sheet1").Activate
Range("A5:F400").Select
Selection.Copy
Range("A1").Select

Sheets("Sheet4").Activate
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1:F400").Select

Selection.Sort Key1:=Range("A2"), Order1:=xlDescending,
Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Range("A1").Select
End Sub
'----------------------------
TIA
J_J







All times are GMT +1. The time now is 01:56 AM.

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