Requirement:
The user is trying to delete a row if the Date / Time in the format 18/12/2018 05:00:00 if the time is greater than 05:00:00 and less than 20:00:00 to delete the whole row.
Sample
ID | ti_date |
6415 | 18/12/2018 06:17 |
4828 | 18/12/2018 07:00 |
4828 | 18/12/2018 07:00 |
2314 | 18/12/2018 08:00 |
2314 | 18/12/2018 08:00 |
1193 | 18/12/2018 09:07 |
1959 | 18/12/2018 13:22 |
1959 | 18/12/2018 13:22 |
2260 | 18/12/2018 14:25 |
1936 | 18/12/2018 15:22 |
1936 | 18/12/2018 15:22 |
8714 | 18/12/2018 17:12 |
8714 | 18/12/2018 17:12 |
8714 | 18/12/2018 17:14 |
1379 | 18/12/2018 20:03 |
1379 | 18/12/2018 20:03 |
5298 | 18/12/2018 20:16 |
5298 | 18/12/2018 20:16 |
1147 | 18/12/2018 20:16 |
5298 | 18/12/2018 20:35 |
5298 | 18/12/2018 20:35 |
5298 | 18/12/2018 20:38 |
5298 | 18/12/2018 20:38 |
1147 | 18/12/2018 20:44 |
1147 | 18/12/2018 20:45 |
1147 | 18/12/2018 20:47 |
1147 | 18/12/2018 20:47 |
5298 | 18/12/2018 20:50 |
5298 | 18/12/2018 20:50 |
5298 | 18/12/2018 21:23 |
5298 | 18/12/2018 21:23 |
6509 | 18/12/2018 22:00 |
6509 | 18/12/2018 22:00 |
1860 | 18/12/2018 23:23 |
1860 | 18/12/2018 23:24 |
1656 | 19/12/2018 00:52 |
1656 | 19/12/2018 00:52 |
4491 | 19/12/2018 05:01 |
4491 | 19/12/2018 05:01 |
4491 | 19/12/2018 05:04 |
Solution:
Sub fatpierre() Application.ScreenUpdating = False Dim LastRow As Long, x As Long LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row For x = LastRow To 2 Step -1 If Hour(Cells(x, 2)) + Minute(Cells(x, 2)) > 5 And Hour(Cells(x, 2)) < 20 Then Rows(x).EntireRow.Delete End If Next x Application.ScreenUpdating = True End Sub
In order for the above to work:
The date is in column C of the sheet will have to change from:
If Hour(Cells(x, 2)) + Minute(Cells(x, 2)) > 5 And Hour(Cells(x, 2)) < 20 Then
To
If Hour(Cells(x, 3)) + Minute(Cells(x, 3)) > 5 And Hour(Cells(x, 3)) < 20 Then
Obtained from the OzGrid Help Forum.
Solution provided by Carim.
See also: Index to Excel VBA Code and Index to Excel Freebies and Lesson 1 - Excel Fundamentals and Index to how to… providing a range of solutions and Index to new resources and reference sheets
See also:
How to copy data in VBA from different named workbook each time |
How to copy 300 rows at a time from one column with 3K rows and convert to csv file |
How to set a countdown timer to beep under 10 seconds |
How to use IF function for time calculation |
How to use VBA code to transpose any copy values X number of times |
How to use code to insert below and copy the row as many times as the cell contains |
Click here to visit our Free 24/7 Excel/VBA Help Forum where there are thousands of posts you can get information from, or you can join the Forum and post your own questions.