Guest User

Untitled

a guest
Sep 20th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. Dim deleteRows()
  2. Dim lastRow As Long
  3.  
  4. 'get the last row
  5. lastRow = Sheet1.Range("H1").End(xlDown).Row
  6.  
  7. 'iterate from the last row to the first row
  8. Dim i As Long
  9. For i = lastRow To 1 Step -1
  10.  
  11. 'test this row we are on for your first condition
  12. If (Sheet1.Range("H" & i).Value = "Stock" Or Sheet1.Range("H" & i).Value = "Custom") _
  13. And Sheet1.Range("G" & i).Value > Now() + 3 Then
  14. Sheet1.Rows(i).Delete
  15. 'test for second condition
  16. ElseIf Sheet1.Range("H" & i).Value <> "STOCK" And Sheet1.Range("H" & i).Value <> "FABRIC" _
  17. And Sheet1.Range("G" & i).Value > Now() + 20 Then
  18. Sheet1.Rows(i).Delete
  19. End If
  20.  
  21. 'on to the next row up
  22. Next i
  23. End Sub
  24.  
  25. Option Explicit
  26.  
  27. Sub DeleteMe()
  28.  
  29. Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
  30. Dim i As Long, DeleteMe As Range
  31.  
  32. For i = 2 To ws.Range("A" & ws.Rows.Count).End(xlUp).Row
  33. If ws.Range("H" & i) = "Stock" Or ws.Range("H" & i) = "custom" And ws.Range("G" & i) > Now() + 3 Then
  34. If DeleteMe Is Nothing Then
  35. Set DeleteMe = ws.Range("H" & i)
  36. Else
  37. Set DeleteMe = Union(DeleteMe, ws.Range("H" & i))
  38. End If
  39. ElseIf ws.Range("H" & i) <> "Stock" And ws.Range("H" & i) <> "Fabric" & ws.Range("G" & i) < Now() + 14 Then
  40. If DeleteMe Is Nothing Then
  41. Set DeleteMe = ws.Range("H" & i)
  42. Else
  43. Set DeleteMe = Union(DeleteMe, ws.Range("H" & i))
  44. End If
  45. End If
  46. Next i
  47.  
  48. If Not DeleteMe Is Nothing Then DeleteMe.EntireRow.Delete
  49.  
  50. End Sub
Add Comment
Please, Sign In to add comment