Ordenar por Ordem Crescente as Células Seleccionadas em VBA\Excel
Posted by admin on 17 de Dezembro de 2011 | Filed under Exercícios, Línguagens de Programação, Programação
Continuando com a resolução dos meus primeiros exercícios em Vba aqui fica mais um:
Elabore um algoritmo que permita ordenar por ordem crescente um conjunto de células seleccionadas.
Aqui fica o código que resolve o exercício:
Sub SortSelection()
Dim CellsCount As Integer
Dim x() As Double, aux As Double
Dim CellsToSort As Range
Dim xCell As Range
Dim i As Integer, j As Integer
Set CellsToSort = Selection ' Conjunto de células seleccionadas
CellsCount = CellsToSort.Count
ReDim x(1 To CellsCount) ' dimensionar o vector
i = 1
For Each xCell In CellsToSort
x(i) = xCell.Value
i = i + 1
Next
'
' ordenação crescente
'
For i = 1 To CellsCount
For j = i To CellsCount
If x(i) > x(j) Then ' troca
aux = x(i)
x(i) = x(j)
x(j) = aux
End If
Next j
Next i
i = 1
For Each xCell In CellsToSort
xCell.Value = x(i)
i = i + 1
Next
End Sub
Não sei se a forma como implementei a resolução do exercício é a mais correcta, e por isso fico à espera de comentários, ou mesmo de correcções e dicas de melhoramento do código que apresento.
Share


