Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hello
I have a spreadhseet where each row has a closing date entry in one column. Is there any way to get the sheet to compare this date with today's date and delete the row automatically once the closing date has passed? |
#2
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
A bit complicated if your close-off dates are all over the place so I have
assumed row 20. Try this in a standard module:- Sub deletecolumns() Dim myrange As Range Set myrange = Range("20:20") Cells(20, 1).Select For Each c In myrange c.Select when = c.Value where = ActiveCell.Column If when < Now() Then Columns(where).Select Selection.Delete Next Cells(20, 1).Select End Sub Mike "bollard" wrote: Hello I have a spreadhseet where each row has a closing date entry in one column. Is there any way to get the sheet to compare this date with today's date and delete the row automatically once the closing date has passed? |
#3
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hi again Mike
The closing dates are all in column K of the worksheet. Generally we have up to 20 rows on each worksheet, each row being a single vacancy. "Mike" wrote: A bit complicated if your close-off dates are all over the place so I have assumed row 20. Try this in a standard module:- Sub deletecolumns() Dim myrange As Range Set myrange = Range("20:20") Cells(20, 1).Select For Each c In myrange c.Select when = c.Value where = ActiveCell.Column If when < Now() Then Columns(where).Select Selection.Delete Next Cells(20, 1).Select End Sub Mike "bollard" wrote: Hello I have a spreadhseet where each row has a closing date entry in one column. Is there any way to get the sheet to compare this date with today's date and delete the row automatically once the closing date has passed? |
#4
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hi Mike
Thanks for that, but it's all a mystery to me. Where do I type this and what is row 20? Each row contains a vacancy whose closing date appears in column K "Mike" wrote: A bit complicated if your close-off dates are all over the place so I have assumed row 20. Try this in a standard module:- Sub deletecolumns() Dim myrange As Range Set myrange = Range("20:20") Cells(20, 1).Select For Each c In myrange c.Select when = c.Value where = ActiveCell.Column If when < Now() Then Columns(where).Select Selection.Delete Next Cells(20, 1).Select End Sub Mike "bollard" wrote: Hello I have a spreadhseet where each row has a closing date entry in one column. Is there any way to get the sheet to compare this date with today's date and delete the row automatically once the closing date has passed? |
#5
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hi Bollard,
Press ALT+ F11 and then double click the worksheet where your data is and paste this code in Private Sub Worksheet_Activate() lastrow = Cells(Cells.Rows.Count, "K").End(xlUp).Row For x = lastrow To 1 Step -1 Cells(x, 11).Select If ActiveCell.Value < "" And ActiveCell.Value < Now Then where = ActiveCell.Row Rows(where).Select Selection.Delete End If Next Cells(1, 11).Select End Sub The code will run whenever the sheet is selected and delte the entire row if column K has a date earlier than today. Mike "bollard" wrote: Hi Mike Thanks for that, but it's all a mystery to me. Where do I type this and what is row 20? Each row contains a vacancy whose closing date appears in column K "Mike" wrote: A bit complicated if your close-off dates are all over the place so I have assumed row 20. Try this in a standard module:- Sub deletecolumns() Dim myrange As Range Set myrange = Range("20:20") Cells(20, 1).Select For Each c In myrange c.Select when = c.Value where = ActiveCell.Column If when < Now() Then Columns(where).Select Selection.Delete Next Cells(20, 1).Select End Sub Mike "bollard" wrote: Hello I have a spreadhseet where each row has a closing date entry in one column. Is there any way to get the sheet to compare this date with today's date and delete the row automatically once the closing date has passed? |
#6
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Hi Mike
I followed your instructions and copied and pasted your sub routine but nothing happened. How do I close the window with the sub routine on it without losing the contents? "Mike" wrote: Hi Bollard, Press ALT+ F11 and then double click the worksheet where your data is and paste this code in Private Sub Worksheet_Activate() lastrow = Cells(Cells.Rows.Count, "K").End(xlUp).Row For x = lastrow To 1 Step -1 Cells(x, 11).Select If ActiveCell.Value < "" And ActiveCell.Value < Now Then where = ActiveCell.Row Rows(where).Select Selection.Delete End If Next Cells(1, 11).Select End Sub The code will run whenever the sheet is selected and delte the entire row if column K has a date earlier than today. Mike "bollard" wrote: Hi Mike Thanks for that, but it's all a mystery to me. Where do I type this and what is row 20? Each row contains a vacancy whose closing date appears in column K "Mike" wrote: A bit complicated if your close-off dates are all over the place so I have assumed row 20. Try this in a standard module:- Sub deletecolumns() Dim myrange As Range Set myrange = Range("20:20") Cells(20, 1).Select For Each c In myrange c.Select when = c.Value where = ActiveCell.Column If when < Now() Then Columns(where).Select Selection.Delete Next Cells(20, 1).Select End Sub Mike "bollard" wrote: Hello I have a spreadhseet where each row has a closing date entry in one column. Is there any way to get the sheet to compare this date with today's date and delete the row automatically once the closing date has passed? |
#7
![]()
Posted to microsoft.public.excel.misc
|
|||
|
|||
![]()
Press Alt+ Q to close VB editor.
It will only execute when you select the worksheet you pasted the code in. If the sheet is already seleceted then de-select it and then go back to it. Mike "bollard" wrote: Hi Mike I followed your instructions and copied and pasted your sub routine but nothing happened. How do I close the window with the sub routine on it without losing the contents? "Mike" wrote: Hi Bollard, Press ALT+ F11 and then double click the worksheet where your data is and paste this code in Private Sub Worksheet_Activate() lastrow = Cells(Cells.Rows.Count, "K").End(xlUp).Row For x = lastrow To 1 Step -1 Cells(x, 11).Select If ActiveCell.Value < "" And ActiveCell.Value < Now Then where = ActiveCell.Row Rows(where).Select Selection.Delete End If Next Cells(1, 11).Select End Sub The code will run whenever the sheet is selected and delte the entire row if column K has a date earlier than today. Mike "bollard" wrote: Hi Mike Thanks for that, but it's all a mystery to me. Where do I type this and what is row 20? Each row contains a vacancy whose closing date appears in column K "Mike" wrote: A bit complicated if your close-off dates are all over the place so I have assumed row 20. Try this in a standard module:- Sub deletecolumns() Dim myrange As Range Set myrange = Range("20:20") Cells(20, 1).Select For Each c In myrange c.Select when = c.Value where = ActiveCell.Column If when < Now() Then Columns(where).Select Selection.Delete Next Cells(20, 1).Select End Sub Mike "bollard" wrote: Hello I have a spreadhseet where each row has a closing date entry in one column. Is there any way to get the sheet to compare this date with today's date and delete the row automatically once the closing date has passed? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Set macro to run automatically when closing workbook? | Excel Discussion (Misc queries) | |||
how do I delete a row automatically after each date | Excel Discussion (Misc queries) | |||
how do I delete a row automatically after each date ends | Excel Discussion (Misc queries) | |||
Prevent open excel windows from automatically closing. | Excel Discussion (Misc queries) | |||
How to set up alarm for cell has entry as date when it expires? | Excel Worksheet Functions |