Delete entire duplicate lines with conditions and

I have data with duplicates (column "c") and I want to delete the row with numbers in column "D". but only for duplicates with odd dates, as seen in the picture enter image description here

this is im code using but i don't know how to delete data line in "D" and , this is duplicate

Sub del_doops() Dim RowNdx As Long Dim RowNdx2 As Long For RowNdx = Range("A1:f1").End(xlDown).Row To 2 Step -1 For RowNdx2 = RowNdx - 1 To 1 Step -1 'Begin at one above RowNdx If Cells(RowNdx, "b").Value = Cells(RowNdx2, "b").Value And _ Cells(RowNdx, "C").Value = Cells(RowNdx2, "C").Value And _ Cells(RowNdx, "E").Value = Cells(RowNdx2, "E").Value And _ Cells(RowNdx, "F").Value <> Cells(RowNdx2, "F").Value Then Rows(RowNdx2).Delete 'this is where i need help End If Next RowNdx2 Next RowNdx End Sub 
+5
source share
2 answers

Change Sheet1 to the name of your sheet in Set wS = ThisWorkbook.Sheets("Sheet1") :

 Sub del_doops() Dim RowNdx As Long Dim RowNdx2 As Long Dim wS As Worksheet Set wS = ThisWorkbook.Sheets("Sheet1") With wS For RowNdx = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1 For RowNdx2 = RowNdx - 1 To 1 Step -1 'Begin at one above RowNdx If .Cells(RowNdx, "B").Value = .Cells(RowNdx2, "B").Value And _ .Cells(RowNdx, "C").Value = .Cells(RowNdx2, "C").Value And _ .Cells(RowNdx, "E").Value = .Cells(RowNdx2, "E").Value And _ .Cells(RowNdx, "F").Value <> .Cells(RowNdx2, "F").Value Then If .Cells(RowNdx, "D").Value <> vbNullString Then .Rows(RowNdx).Delete Else If .Cells(RowNdx2, "D").Value = vbNullString Then .Rows(RowNdx2).Delete End If End If Next RowNdx2 Next RowNdx End With 'wS End Sub 
+2
source
 Sub del_doops() Dim RowNdx As Long Dim RowNdx2 As Long For RowNdx = Range("A1:f1").End(xlDown).Row To 2 Step -1 For RowNdx2 = RowNdx - 1 To 1 Step -1 'Begin at one above RowNdx If Cells(RowNdx, "B").Value = Cells(RowNdx2, "B").Value And _ Cells(RowNdx, "C").Value = Cells(RowNdx2, "C").Value And _ Cells(RowNdx, "E").Value = Cells(RowNdx2, "E").Value And _ Cells(RowNdx, "F").Value = Cells(RowNdx2, "F").Value Then If Cells(RowNdx, "D").Value = vbNullString And _ Cells(RowNdx2, "D").Value <> vbNullString Then Rows(RowNdx2).Delete Else Rows(RowNdx).Delete End If End If Next RowNdx2 Next RowNdx End Sub 
+2
source

Source: https://habr.com/ru/post/1264877/


All Articles