|First, a posting tip...|
If you click on the blue line at the end of this post you'll find the instructions on how to post example data and VBA code in this forum. Please try to follow those instructions in the future. Thanks!
As for your question...
Your code appears to be searching for data that doesn't exist, at least based on the example data that you posted.
Let's look at this section:
If Cells(myRow, 1) < 0 Then
Set findRange = _
Range("A2:A" & lastRow).Find(Abs(Cells(myRow, 1)), _
If Not findRange Is Nothing Then
'>>>>> Why are you searching Column D in the next instruction? <<<<<
Set findRange1 = _
Range("D2:D" & lastRow).Find(Abs(Cells(myRow, 4)), _
If Not findRange1 Is Nothing Then
myRow = myRow - 1
Each time through the loop, the code searches for a negative number in Column A. If it finds that number, it then searches for a number in Column D. Since you don't appear to have any data in Column D, findRange1 will always be Nothing, therefore the code to delete findRange.EntireRow will never run.
Why are you searching Column D?
You could do something similar with a formula, although it wouldn't delete the rows.
If you created a flitered list of names so that you had a single entry for each name, then you could a SUMIF function.
Let's say your original data is in A1:A8 and your filtered list of names starts in B10. Put this formula in A10 and drag it down. The result will only show a value next to Will and Jack.
Click Here Before Posting Data or VBA Code ---> How To Post Data or Code.