In Sub FillSheet5(), replace the line towards the end after the comment.
'ListBox1.List = a  'Unsorted totally
  Set r = Sheet5.Range("A2").Resize(UBound(a, 1), UBound(a, 2))