ORDENAR VALORES

PAYDANA 27/07/2013 15:50:47
#426607
Tenho estes valores

01 = 2724
02 = 1746
03 = 2792
04 = 3091
05 = 1811
06 = 2176
07 = 2634
08 = 2276
09 = 1818
10 = 1752
11 = 1847
12 = 1832
13 = 2531
14 = 2003
15 = 2920
16 = 2936
17 = 2845
18 = 2297
19 = 2800
20 = 1830
21 = 2133
22 = 2617
23 = 2605
24 = 2929
25 = 2560


Eles estão ordenados conforme os numeros que vem antes do =
Preciso ordena-los conforme os numeros que estão depois do =
Ficando assim:

04 = 3091
16 = 2936
24 = 2929
15 = 2920
17 = 2845
19 = 2800
03 = 2792
01 = 2724
07 = 2634
22 = 2617
23 = 2605
25 = 2560
13 = 2531
18 = 2297
08 = 2276
06 = 2176
21 = 2133
14 = 2003
11 = 1847
12 = 1832
20 = 1830
09 = 1818
05 = 1811
10 = 1752
02 = 1746

Tenho este codigo aqui de efeito bolha que funciona perfeito, mais me perco na logica porque ele não funciona com o =

Private Sub Command1_Click()
valores = Array(2, 4, 1, 3, 40, 19, 21)

For i = LBound(valores) To UBound(valores)
For j = LBound(valores) To UBound(valores)
If valores(i) < valores(j) Then
temp = valores(i)
valores(i) = valores(j)
valores(j) = temp
End If
Next j
Next i

s = [Ô][Ô]
For Each valor In valores
s = s & valor & vbCrLf
MsgBox s
Next valor

End Sub
PAYDANA 28/07/2013 12:00:54
#426620
Um amigo ate me deu umas dicas mais ele nao meche com vb6 so com C

To quase la, ficou assim:

Private Sub Command1_Click()
Dim Valores() As String
Dim Indice() As String

Valores = Split([Ô]9110,9079936,8772012,9022785,8600003,8766757,8449645,8238956,8592155,8703152,9179933,8949851,9019980,8764637,8754041,8327261,8691959,8277999,9011343,8617975,8747046,8787806,8949298,8925438,8894217[Ô], [Ô],[Ô])
Indice = Split([Ô]01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25[Ô], [Ô],[Ô])

For i = LBound(Valores) To UBound(Valores)
For j = LBound(Valores) To UBound(Valores)
If Valores(i) < Valores(j) Then
temp = Valores(i)
Valores(i) = Valores(j)
Valores(j) = temp

temp = Indice(j)
Indice(j) = Indice(j + 1)
Indice(j) = temp

End If

Next j
Next i


For i = LBound(Valores) To UBound(Valores)
MsgBox Indice(i) & [Ô] = [Ô] & Valores(i)
Next

End Sub
EPISCOPAL 28/07/2013 13:23:43
#426622
Resposta escolhida
bom na hora de comparar os valores é só trocar a comparação tipo

05 = 8900
21 = 4560

dim tmp1() as string
dim tmp2() as string

tmp1 = split (05 = 8900, [Ô]=[Ô])
tmp2 = split (21 = 4560, [Ô]=[Ô])

if tmp1(1) > tmp2(1) then [ô]troca os valores ...



bom .... num sei se é isso
PAYDANA 28/07/2013 13:49:43
#426624
acho que nao porq no caso ae o 05 e o 21 vão ser contados como valores
PAYDANA 28/07/2013 19:18:05
#426626
Consegui

Private Sub Command1_Click()
Dim Valor() As String
Dim Indice() As String

Valor = Split([Ô]9110548,9079936,8772012,9022785,8600003,8766757,8449645,8238956,8592155,8703152,9179933,8949851,9019980,8764637,8754041,8327261,8691959,8277999,9011343,8617975,8747046,8787806,8949298,8925438,9894217[Ô], [Ô],[Ô])
Indice = Split([Ô]01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25[Ô], [Ô],[Ô])

For i = LBound(Valor) To UBound(Valor)
For j = LBound(Valor) To UBound(Valor)
If Valor(i) > Valor(j) Then
temp = Valor(i)
Valor(i) = Valor(j)
Valor(j) = temp

temp = Indice(i)
Indice(i) = Indice(j)
Indice(j) = temp

End If

Next j
Next i


For r = LBound(Indice) To UBound(Valor)
ba = ba & Indice(r) & [Ô] = [Ô] & Valor(r) & vbCrLf
Next
MsgBox ba
End Sub
Tópico encerrado , respostas não são mais permitidas