VBA - Copy/Paste Values if Cell equals Value

trock12

New Member
Joined
Dec 17, 2014
Messages
29
I can't quite nail this one down with VBA.

What I'm trying to accomplish is:

For a collection of rows (2:205), if the cell value in column H equals "Y" - copy and paste the values of that entire row. If the value of column H equals "N" or is blank - then do nothing to the row.

Any push in the right direction is appreciated!
 
Last edited:

Some videos you may like

Excel Facts

Repeat Last Command
Pressing F4 adds dollar signs when editing a formula. When not editing, F4 repeats last command.

Fluff

MrExcel MVP, Moderator
Joined
Jun 12, 2014
Messages
41,280
Office Version
365
Platform
Windows
As long as you have a header row in row1 you could use either Autofilter or Advanced filter
 

trock12

New Member
Joined
Dec 17, 2014
Messages
29
I tried using Autofilter, but in the VBA it kept referring to that as a "Selection" and would error out when running the macro.

Code:
ActiveSheet.Range("$A$1:$G$205").AutoFilter Field:=7, Criteria1:="Y"
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xltoRight)).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
 

Fluff

MrExcel MVP, Moderator
Joined
Jun 12, 2014
Messages
41,280
Office Version
365
Platform
Windows
I didn't realise that you were looking to convert to values, rather than copy/paste to a new sheet.
In that case try
Code:
Sub trock12()
   Dim Rng As Range
   With ActiveSheet
      .Range("A1:G205").AutoFilter 7, "Y"
      For Each Rng In .AutoFilter.Range.SpecialCells(xlVisible).Areas
         Rng.Value = Rng.Value
      Next Rng
      .AutoFilterMode = False
   End With
End Sub
 

Watch MrExcel Video

Forum statistics

Threads
1,100,191
Messages
5,473,041
Members
406,843
Latest member
David_Welland

This Week's Hot Topics

Top