Hi davo3286
First off, I think that you need to add a command such as InvoiceList.ListIndex = 0 whenever the listbox is redrawn. This forces one of the rows to be recognised as the active row. It needn't default to row 0 either - you could quite easily capture the previous Listindex value and restore it at that point, but as I said, this needs to take place every time the listbox is updated.
You will then need a line at the start of your DeleteButton_Click routine. Something as simple as :
should sort it - needless to say, this needs to come directly after the With Sheets... statement.
HTH
DominicB
Bookmarks