Solved

Delete from Sheet1 based on value in Sheet2

Posted on 2013-05-20
5
504 Views
Last Modified: 2013-05-20
I have the attached example of a file where I need to

do the below:

Delete rows to end of used rows on Sheet1 where
Sheet1 column A matches Sheet2 column C
And Sheet2 column AP is not null

Can someone please help on how best to approach this either using a formula or VBA - preferably vba.  

Thanks in advance.
Not-Null.zip
0
Comment
Question by:leezac
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 35

Expert Comment

by:[ fanpages ]
ID: 39181434
Hi,

Just to confirm your expected outcome; in the example workbook provided, there would just be two remaining rows in [Sheet1]:

flour
soda


...or would "Milk" still be present (as it does not match "milk" in [Sheet2])?

Thanks.

BFN,

fp.

PS. Should "beens" read "beans"? :)
0
 

Author Comment

by:leezac
ID: 39181588
expected outcome;  there would just be two remaining rows in [Sheet1]:

flour
soda

Thanks
0
 
LVL 35

Accepted Solution

by:
[ fanpages ] earned 500 total points
ID: 39181712
Hi again,

Thanks for your confirmation.

This code should meet your requirements:

Option Explicit
Public Sub Q_28133386()

  Dim lngRow                                            As Long
  Dim objCell                                           As Range
  Dim objRange                                          As Range
  
  On Error Resume Next
  
  Application.ScreenUpdating = False
  
  Set objRange = Range(Worksheets("Sheet2").[C3], Worksheets("Sheet2").Cells(Worksheets("Sheet2").Cells.Rows.Count, "C").End(xlUp))
  
  If Not (objRange Is Nothing) Then
     Worksheets("Sheet1").Select
  
     For lngRow = Cells(Cells.Rows.Count, 1).End(xlUp).Row To 2& Step -1&
  
         Set objCell = Nothing
         Set objCell = objRange.Find(What:=Cells(lngRow, "A"))
      
         If Not (objCell Is Nothing) Then
            If Not (IsEmpty(Worksheets("Sheet2").Cells(objCell.Row, "AP"))) Then
               Worksheets("Sheet1").Rows(lngRow).EntireRow.Delete
            End If ' If IsEmpty(Worksheets("Sheet2").Cells(objCell.Row, "AP")) Then
         End If ' If Not (objCell Is Nothing) Then
         
     Next lngRow
  End If ' If Not (objRange Is Nothing) Then
  
  Set objCell = Nothing
  Set objRange = Nothing
  
  Application.ScreenUpdating = True
  
End Sub

Open in new window


I have also attached a workbook based on your original with this code included within a separate code module, "basQ_28133386", for convenience.

BFN,

fp.
Q-28133386.xls
0
 

Author Closing Comment

by:leezac
ID: 39182266
Thank you - works perfect
0
 
LVL 35

Expert Comment

by:[ fanpages ]
ID: 39182404
You are very welcome.

Good luck with the rest of your project.
0

Featured Post

SharePoint Admin?

Enable Your Employees To Focus On The Core With Intuitive Onscreen Guidance That is With You At The Moment of Need.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This code takes an Excel list of URL’s and adds a header titled “URL List”. It then searches through all URL’s in column “A”, looking for duplicates. When a duplicate is found, it is moved to the top of the list. The duplicate URL’s are then highlig…
This article describes how to use a set of graphical playing cards to create a Draw Poker game in Excel or VB6.
The viewer will learn how to create two correlated normally distributed random variables in Excel, use a normal distribution to simulate the return on different levels of investment in each of the two funds over a period of ten years, and, create a …
This Micro Tutorial will demonstrate in Microsoft Excel how to add style and sexy appeal to horizontal bar charts.

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question