This is not an easy thing to do, you may find yourself knee deep in code. If you're OK with that, this web page presents an approach.
http://puremis.net/excel/code/041.shtml

http://www.excelforum.com/excel-misc...own-lists.html