hi,

Deleting rows changes the Row Number of any remaining rows that are below where the deleted rows previously existed (ie they all get renumbered), therefore row deletions are best to do from the bottom of your data up to the top. This is why both Dom & my code includes the statement "step -1" in the first line of the Loop (so it goes "backwards" or "upwards").

In my code you can change:
.Cells(pbRowColl.Item(i), "a").Resize(NumOfRwsToDel, .Columns.Count).Select    'Delete
to
.Cells(pbRowColl.Item(i), "a").Resize(NumOfRwsToDel, .Columns.Count).Delete
and everything should get deleted.

hth
Rob