I would need a Code that would do the following after all codes has been processed.

I have info on Row:
A5 to M5
A6 to M6
This goes on until row 30A to 30M
I have a vb code that transfer data to the next sheet if a selection is made but it delete the row but now you have an empty row between my selection. My data is between row5 to row 30. Is there a vb code that would eliminate all blank rows to bring up my data as if I was doing a sort every time a code is ran in the sheet?
Ex:

A5 to M5 is populated
A6 to M6 is populated
A7 to M6 Nothing
A8 to M8 is populated

Everytime a code is ran then sort column A with the expanded seletion from A5 to A30.

Help please…