VBA Macro - If word cancelled in one column, enter Yes in another column

tanyaleblanc

Board Regular
Joined
Mar 16, 2019
Messages
145
trying to say; if the word cancelled in column b, enter yes in column ab


Sub Filter()
Dim lRow As Long
Dim ts As Date
If AutoFilterMode = True And FilterMode = True Then ActiveSheet.ShowAllData
lRow = ActiveSheet.Range("A30000").End(xlUp).Row



With Workbooks("Rental Rec.xlsm")
With .Sheets("Owned")
If .AutoFilterMode And .FilterMode Then .ShowAllData
lRow = .Range("A30000").End(xlUp).Row
With .Range("a1:bh" & lRow)
.AutoFilter Field:=2, Criteria1:="<>#N/A"
.AutoFilter Field:=3, Criteria1:="Payout"
End With
.AutoFilter.Range.Offset(1).Columns(2).ClearContents
End With
End With



.Range("ab3:ab" & lRow).Value = "Yes"
 

Excel Facts

Excel Can Read to You
Customize Quick Access Toolbar. From All Commands, add Speak Cells or Speak Cells on Enter to QAT. Select cells. Press Speak Cells.
Try
Code:
Sub Filter1()
Dim lRow As Long
Dim ts As Date

With Workbooks("Rental Rec.xlsm")
   With .Sheets("Owned")
      If .AutoFilterMode And .FilterMode Then .ShowAllData
      lRow = .Range("A30000").End(xlUp).Row
      With .Range("a1:bh" & lRow)
         .AutoFilter Field:=2, Criteria1:="<>#N/A"
         .AutoFilter Field:=3, Criteria1:="Payout"
      End With
      .AutoFilter.Range.Offset(1).Columns(2).ClearContents
      .AutoFilter.Range.Offset(1).Columns(28).Value = "Yes"
   End With
End With
End Sub
Also there is no point in including this line all the time as it does nothing whatsoever
Code:
If AutoFilterMode = True And FilterMode = True Then ActiveSheet.ShowAllData

Also:
When posting code, please use code tags, the # icon in the reply window.
 
Last edited:
Upvote 0
Upvote 0
This worked but it applied the word Yes to two rows and it should have only populated once. The criteria only had 1 row and populated yes in two rows. It should have only applied it once.

Will Not Bill This MonthComm WH - ExcludedExcluded PayoutCancel
NoNoNoYesYes
Yes

<colgroup><col span="5"></colgroup><tbody>
</tbody>
 
Upvote 0
How about
Code:
Sub Filter1()
Dim lRow As Long
Dim ts As Date

With Workbooks("Rental Rec.xlsm")
   With .Sheets("Owned")
      If .AutoFilterMode And .FilterMode Then .ShowAllData
      lRow = .Range("A30000").End(xlUp).Row
      With .Range("a1:bh" & lRow)
         .AutoFilter Field:=2, Criteria1:="<>#N/A"
         .AutoFilter Field:=3, Criteria1:="Payout"
      End With
      With .AutoFilter.Range.Offset(1)
         .Columns(2).ClearContents
         .Resize(.Rows.Count - 1).Columns(28).Value = "Yes"
      End With
   End With
End With
End Sub
 
Upvote 0
It still populated in 2 rows but this time it changed the Heading from Cancel to Yes and yes in the row it should be.

Excluded PayoutYes
NoYesYes

<colgroup><col span="3"></colgroup><tbody>
</tbody>

<colgroup><col></colgroup><tbody>
</tbody>
 
Upvote 0
Do you have a header in row1?
 
Upvote 0
In that case change this line as shown
Code:
With .Range("a[COLOR=#ff0000]2[/COLOR]:bh" & lRow)
 
Upvote 0

Forum statistics

Threads
1,216,115
Messages
6,128,919
Members
449,478
Latest member
Davenil

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top