My solution is as follows for the temporary collection sorting:

        For icounter1 = 1 To tempColl.Count - 1            For icounter2 = icounter1 + 1 To tempColl.Count
                If tempColl(icounter1).size1 <= tempColl(icounter2).size1 Then
                    If tempColl(icounter1).size2 <= tempColl(icounter2).size2 Then
                        Set tempItem = tempColl(icounter2)
                        tempColl.Remove icounter2
                        tempColl.Add tempItem, , icounter1
                    End If
                End If
            Next icounter2
        Next icounter1
This doesn't have a check for comparing size3's but it shouldn't be any different logic.