Can't think how to achieve this without an "external" sort. You could write/read the listbox items to a hidden sheet and use dynamic ranges and worksheet sorts, but I'm not sure that is any more elegant.