Solved

VBA code that detects duplicates in a column

Posted on 2016-10-25
8
15 Views
Last Modified: 2016-10-25
Hi everyone,

I have a spreadsheet where one of the columns contains a list of names (both first and last names) and I've sorted the column so that it's in alphabetical order. Some of the rows in that column contain duplicate names so I was wondering if I could get some help with some vba code that would look down the column (across all rows) and see if it finds the same name and if it does then the consecutive rows would be highlighted a yellow colour? The same names might be in row 1 to 4 or it could be in rows 7 and 8 or any other consecutive rows.

The names would be in Column G.

Would really appreciate any help.
0
Comment
Question by:gwh2
  • 3
  • 3
  • 2
8 Comments
 
LVL 48

Expert Comment

by:Rgonzo1971
Comment Utility
Hi,

pls try
Sub Macro2()

    With Columns("G:G")
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:= _
            "=COUNTIF(G1:$G$1,G1)>1"
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
        End With
    End With
End Sub

Open in new window

Regards
0
 
LVL 35

Expert Comment

by:Kimputer
Comment Utility
Somehow, above code didn't work.  In that case, you might wanna try this alternative code:

Sub ColGYellow()

  maxrow = ActiveSheet.UsedRange.Rows.Count
  For i = 1 To maxrow Step 1
    If i <> maxrow Then
        If Cells(i, 7).Value = Cells(i + 1, 7).Value Then
            Cells(i + 1, 7).Interior.Color = 65535
        End If
    End If
  Next
  
End Sub

Open in new window

0
 
LVL 48

Expert Comment

by:Rgonzo1971
Comment Utility
@KiMputer
Maybe because the formula must be a local formula.
On my computer, it works perfectly
0
 
LVL 1

Author Comment

by:gwh2
Comment Utility
Thanks for the replies,

Rgonzo1971: I tried your code but it doesn't seems to work correctly, ie. for the first lot of 3 duplicate rows, it highlighted all 3 rows, for the second lot of 2 duplicate rows, it highlighted the second one but not the first, then for the next set of 2 duplicate rows, it highlighted all 2 rows. In another row, it highlighted a name which was not a duplicate.

Kimputer: I tried your code and it highlights all duplicates except the first one. I wondered is it possible for the code to highlight all the rows including the first one?

Thank you both so much for the code.
0
What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 35

Assisted Solution

by:Kimputer
Kimputer earned 250 total points
Comment Utility
Include the first original turning yellow:

Sub ColGYellow()

  maxrow = ActiveSheet.UsedRange.Rows.Count
  For i = 1 To maxrow Step 1
    If i <> maxrow Then
        If Cells(i, 7).Value = Cells(i + 1, 7).Value Then
            Cells(i, 7).Interior.Color = 65535
            Cells(i + 1, 7).Interior.Color = 65535
        End If
    End If
  Next
  
End Sub

Open in new window

0
 
LVL 48

Accepted Solution

by:
Rgonzo1971 earned 250 total points
Comment Utility
then try
Sub Macro2()

    With Columns("G:G")
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:= _
            "=COUNTIF(G:G,G1)>1"
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
        End With
    End With
End Sub

Open in new window

0
 
LVL 1

Author Comment

by:gwh2
Comment Utility
Thanks again - both blocks of code work great.
0
 
LVL 1

Author Closing Comment

by:gwh2
Comment Utility
0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Being an active EE Expert means to get a lot of (E)EMail, as you certainly know. If you are using Outlook, I'll show you how to minimize your inbox contents without losing anything – even improve the experience by changing the Subject line to facili…
This is an Add-On procedure to be used in conjunction with the code provided in Reducing EE Email Clutter using Outlook (http://www.experts-exchange.com/Software/Office_Productivity/Groupware/Outlook/A_3146-Outlook-Processing-EE-emails-on-Receive.…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…

772 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now