Hi,
Do you need this doing in Excel, or is open office an option too?
Other options are available too, like using a scripting language such as perl, or PHP to create you a pdf invoice, and using a database to store your data.
Have you thought about a fully fledged stock control system? Right now, it looks as though you'd be creating your entire stock system based around your invoice - it might be better to set up your inventory in some external system (a DB app), then querying the database to create invoices.
Just a thought :)
John