One of the aspects of Excel that makes it so popular is the ease by which one can quickly put together something that is useful.
Here, it's being used as a mini-database. There'd be little point in setting up a full database in, say, Access. Too much hard work. In such a database, the data isn't so easily accessible, but the reports you can produce from it are super flexible.
This is because the data management side of things is separated from the display/output side.
In Excel that division of roles is rarely the case, but you can have a stab at it. In the attached, which is only a variant of
NoSparks' workbook, his
ScratchPad, instead of being temporary, is permanent, and serves as the data management side of things. Here you edit your database, sort it and anything else. I've called that sheet
EditMe.
The original
Sheet1 I've renamed
PrintMe, and serves as the display/output. All you do here is tart it up for output; put borders in, highlighting, page breaks, cell colouring… what you will. All I've done is put links in this sheet to the
EditMe sheet. So when alterations/sorting and so on take place on the
EditMe sheet, they're immediately reflected in the
PrintMe sheet.
There is a little macro to refresh the links on the
PrintMe sheet links (which again is one of
NoSparks' macros with a few tweaks) but you only to need to run that if you've added lots more entries on the
EditMe sheet, or you've deleted/inserted entire rows on the
EditMe sheet. For the most part, adding a few entries at the bottom of the
EditMe sheet, then sorting that sheet, results in a ready-to-print
PrintMe sheet.
The only things you might need to adjust in the macro are the 2 sheet names; I've put a comment 'adjust' on each line:
Code:
Set src = Sheets("EditMe") 'adjust
Set dest = Sheets("PrintMe") 'adjust
Just a different approach.