Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Thanks for all the feedback! I utilized Per Jensen and it worked like charm!
Tested it out twice! Thank you so much! "Per Jessen" wrote: Hi Try this: Private Sub Workbook_Open() Dim myWS As Worksheet Dim myRange As Range Dim anyCell As Range Dim testDate As Date Application.ScreenUpdating = False Set myWS = ThisWorkbook.Worksheets("Sheet1") testDate = Now() - 180 Set myRange = myWS.Range("E5:E450,H5:H450,K5:K450") For Each anyCell In myRange If anyCell < testDate Then anyCell.ClearContents anyCell.Offset(0, 1).ClearContents End If Next 'housekeeping Set myRange = Nothing Set myWS = Nothing Application.ScreenUpdating = True End Sub Regards, Per On 13 Mar., 16:11, JAbels001 wrote: I need help writing a VBA code for 2007 Excel. I have a document that multiple people have access to. Within this document there are dates and data next to those dates. I need all dates deleted upon being opened if it's greater than 6mos from the date that it is opened. The dates are in columns E, H and K and the data for each date is directly to the right (F, I and L). The information goes all the way down from row 5 to row 450. I hope this makes sense. This is what I got so far, but it only worked the first time I opened the workbook. Every time thereafter it does not delete older than 6mos dates. Private Sub Workbook_Open() Dim myWS As Worksheet Dim myRange As Range Dim anyCell As Range Dim testDate As Date Set myWS = ThisWorkbook.Worksheets("Sheet1") testDate = Now() + 180 Set myRange = myWS.Range("E5:E450") For Each anyCell In myRange If anyCell testDate Then anyCell.ClearContents anyCell.Offset(0, 1).ClearContents End If Next Set myRange = myWS.Range("H5:H450") For Each anyCell In myRange If anyCell testDate Then anyCell.ClearContents anyCell.Offset(0, 1).ClearContents End If Next Set myRange = myWS.Range("K5:K450") For Each anyCell In myRange If anyCell testDate Then anyCell.ClearContents anyCell.Offset(0, 1).ClearContents End If Next 'housekeeping Set myRange = Nothing Set myWS = Nothing End Sub . |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|