PcMax
12-11-2011, 04:08 AM
Hi,
Now in a module insert the following code:
Sub BubbleSort(arr As Variant, Optional numEls As Variant, _
Optional descending As Boolean)
Dim value As Variant
Dim index As Long
Dim firstItem As Long
Dim indexLimit As Long, lastSwap As Long
' account for optional arguments
If IsMissing(numEls) Then numEls = UBound(arr)
firstItem = LBound(arr)
lastSwap = numEls
Do
indexLimit = lastSwap - 1
lastSwap = 0
For index = firstItem To indexLimit
value = arr(index)
If (value > arr(index + 1)) Xor descending Then
' if the items are not in order, swap them
arr(index) = arr(index + 1)
arr(index + 1) = value
lastSwap = index
End If
Next
Loop While lastSwap
End Sub
How can I get an order of an array
arr = ZonaSenzadoppi(Foglio3.Range("A3:A" & EndRow))
I'm missing something in the sense I have just created an array, here I have a list (OK)
In the next line (as Userform)
BubbleSort arr
Here is blocked ...
value = arr(index)
Now in a module insert the following code:
Sub BubbleSort(arr As Variant, Optional numEls As Variant, _
Optional descending As Boolean)
Dim value As Variant
Dim index As Long
Dim firstItem As Long
Dim indexLimit As Long, lastSwap As Long
' account for optional arguments
If IsMissing(numEls) Then numEls = UBound(arr)
firstItem = LBound(arr)
lastSwap = numEls
Do
indexLimit = lastSwap - 1
lastSwap = 0
For index = firstItem To indexLimit
value = arr(index)
If (value > arr(index + 1)) Xor descending Then
' if the items are not in order, swap them
arr(index) = arr(index + 1)
arr(index + 1) = value
lastSwap = index
End If
Next
Loop While lastSwap
End Sub
How can I get an order of an array
arr = ZonaSenzadoppi(Foglio3.Range("A3:A" & EndRow))
I'm missing something in the sense I have just created an array, here I have a list (OK)
In the next line (as Userform)
BubbleSort arr
Here is blocked ...
value = arr(index)