Copying Rows between Worksheets Based on a Text Value

Marian wonders if there is a way to copy an entire row from one worksheet to another worksheet based on the occurrence of a specific text value (“yes”) in column E of the row. Vlookup doesn’t seem to work for this type of evaluation.

If you only need to do this type of task sporadically, then you can simply use the filtering capabilities of Excel. Turn on filter and filter your data so it only shows rows that have “yes” in column E. Copy the visible rows and paste them into whatever worksheet you want.

If you have to do the task more often, you could create a macro to make the copying a snap. The following macro examines the first 1,000 rows of Sheet1 and copies to Sheet2 any rows containing “yes” in column E.

Sub CopyYes()
    Dim c As Range
    Dim j As Integer
    Dim Source As Worksheet
    Dim Target As Worksheet

    ' Change worksheet designations as needed
    Set Source = ActiveWorkbook.Worksheets("Sheet1")
    Set Target = ActiveWorkbook.Worksheets("Sheet2")

    J = 1     ' Start copying to row 1 in target sheet
    For Each c In Source.Range("E1:E1000")   ' Do 1000 rows
        If c = "yes" Then
           Source.Rows(c.Row).Copy Target.Rows(j)
           j = j + 1
        End If
    Next c
End Sub

Note that the macro will overwrite any information already on Sheet2. It also is not “dynamic,” meaning that if the values in column E change and you want the rows in Sheet2 to reflect those changes, then the macro won’t help.

Additional information about automatically copying information from one worksheet to another can be found on this website:

http://www.mrexcel.com/forum/excel-questions/602635-automatically-move-entire-rows-one-worksheet-into-another-worksheet-same-workbook.html

That’s a very long URL; you’ll want to make sure you get it all into your browser.