when you insert or delete rows start from last row to first row.

as you are tampering with your data sheet better copy sheet1 to sheet 2 as precaution

try this macro

Sub test()
Dim j As Long
Worksheets("sheet1").Activate
For j = Range("D1").End(xlDown).Row To 1 Step -1
If Cells(j, "D") = "True" Then Cells(j, "D").EntireRow.Delete
Next j
End Sub