Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 585
  • Last Modified:

Hide Duplicate Records based on TimeStamp

Greetings

I have a data stream in to Excel Spreadsheets (1301, 1302, 1303, etc.) within a single Workbook. I have VBA routines to Delete Duplicate Records but they do not consider the TimeStamps. I need to "Hide" Records and not "Delete"

ColA               ColB               ColC               Cold
1/02/2013      CustA             data               data
1/13/2013      CustA             data               data
1/13/2013      CustB             data               data
1/08/2013      CustA             data               data
1/21/2013      CustB             data               data
1/13/2013      CustC             data               data
1/18/2013      CustB             data               data
1/13/2013      CustD             data               data

I need to "Hide" Records with earlier TimeStamps (ColA) by ColB (Customer)' I wish only to View a Customers Later Record based on TimeStamp (ColA). I must retail all data for a historical record.

ColA               ColB               ColC               Cold
1/13/2013      CustA             data               data
1/21/2013      CustB             data               data
1/13/2013      CustC             data               data
1/13/2013      CustD             data               data

This should run on Active Worksheet

Regards,

Dave
0
srlittle
Asked:
srlittle
  • 3
  • 2
1 Solution
 
Martin LissOlder than dirtCommented:
Here;s a macro.

Sub HideOld()
Dim lngLastRow As Long
Dim lngRow As Long
Dim lngCompareRow As Long
Dim strCust As String
Dim lngHighRow As Long
lngLastRow = Range("A65536").End(xlUp).Row

For lngRow = 2 To lngLastRow
    If Rows(lngRow & ":" & lngRow).EntireRow.Hidden = False Then
        strCust = Cells(lngRow, 2).Value
        lngHighRow = lngRow
        For lngCompareRow = lngRow + 1 To lngLastRow
            If Rows(lngCompareRow & ":" & lngCompareRow).EntireRow.Hidden = False Then
                If Cells(lngCompareRow, 2).Value = strCust Then
                    If DateValue(Cells(lngCompareRow, 1)) >= DateValue(Cells(lngHighRow, 1)) Then
                        Rows(lngHighRow & ":" & lngHighRow).EntireRow.Hidden = True
                        lngHighRow = lngCompareRow
                    Else
                        Rows(lngCompareRow & ":" & lngCompareRow).EntireRow.Hidden = True
                    End If
                End If
            End If
        Next
    End If
Next
    

End Sub

Open in new window

0
 
Martin LissOlder than dirtCommented:
Note that the above assumes that your data starts in row 2.
0
 
srlittleAuthor Commented:
Took a while to walk thru your solution. Very nice. I learned a few things. Your code Hides Old Duplicates as expected, however the EntireRow.Hidden property does not allow me to Unhide the Hidden Rows from the Files/Unhide Button (It is grayed Out). However the Right Click "Unhide" works. I need to do this to view Historical Data. Your solution works and I accept with gratitude.

Regards,
Dave
0
 
srlittleAuthor Commented:
My coding expertise is more centerd on data manipulation. I always enjoy learning more about the power of Workbook/Worksheet Properties and functions.
0
 
Martin LissOlder than dirtCommented:
I'm not familiar with Files/Unhide but here's a companion macro you can use to unhide the rows. Do you know how to assign a shortcut key to the macro?

Sub ShowAll()

Dim lngLastRow As Long
lngLastRow = Range("A65536").End(xlUp).Row

Rows("1:" & lngLastRow).EntireRow.Hidden = False

End Sub

Open in new window

In any case I'm glad I was able to help.

Marty - MVP 2009 to 2013
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now