Option Explicit > >Private mcolX As Collection > >Private Sub Command1_Click() >Dim objInvoice As clsInvoice > > Set mcolX = New Collection > > Set objInvoice = New clsInvoice > objInvoice.InvoiceNumber = "i010" > objInvoice.Amount = 10 > Call AddItemToColl(objInvoice) > > Set objInvoice = New clsInvoice > objInvoice.InvoiceNumber = "i020" > objInvoice.Amount = 20 > Call AddItemToColl(objInvoice) > > Set objInvoice = New clsInvoice > objInvoice.InvoiceNumber = "i001" > objInvoice.Amount = 1 > Call AddItemToColl(objInvoice) > > Set objInvoice = New clsInvoice > objInvoice.InvoiceNumber = "i025" > objInvoice.Amount = 25 > Call AddItemToColl(objInvoice) > > Call DisplayColl >End Sub > >Private Sub AddItemToColl(ByVal pobjInv As clsInvoice) >Dim intPos As Integer >Dim x As clsInvoice > > intPos = 0 > For Each x In mcolX > If x.Amount > pobjInv.Amount Then > Exit For > End If > intPos = intPos + 1 > Next > If mcolX.Count = 0 Then > mcolX.Add pobjInv > ElseIf intPos = 0 Then > mcolX.Add pobjInv, , 1 > Else > mcolX.Add pobjInv, , , intPos > End If >End Sub > >Private Sub DisplayColl() >Dim x As clsInvoice > > For Each x In mcolX > MsgBox x.InvoiceNumber & ": " & x.Amount > Next >End Sub