ovviamente testatela e fatemi sapere come va!!!codice:Function ordinaArrayNumerico(arrayDaOrdinare, tipoOrdinamento) ReDim arrayOrdinato(UBound(arrayDaOrdinare)) If LCase(tipoOrdinamento)="desc" Then ordinamentoArray = 1 Else ordinamentoArray = 0 End If For i = LBound(arrayDaOrdinare) to UBound(arrayDaOrdinare) puntatore = (UBound(arrayDaOrdinare)+1) valoreDaControllare = arrayDaOrdinare(i) For z = LBound(arrayDaOrdinare) to UBound(arrayDaOrdinare) If InStr(CStr(valoreDaControllare),".") or InStr(CStr(valoreDaControllare),",") Then controlloPadre = CDbl(valoreDaControllare) Else controlloPadre = CLng(valoreDaControllare) End If If InStr(CStr(arrayDaOrdinare(z)),".") or InStr(CStr(arrayDaOrdinare(z)),",") Then controlloFiglio = CDbl(arrayDaOrdinare(z)) Else controlloFiglio = CLng(arrayDaOrdinare(z)) End If Select Case ordinamentoArray Case 0 If controlloPadre<=controlloFiglio Then puntatore=puntatore - 1 End If Case 1 If controlloPadre>=controlloFiglio Then puntatore=puntatore - 1 End If End Select Next If arrayOrdinato(puntatore)="" Then arrayOrdinato(puntatore) = valoreDaControllare Else controlUguali = 0 For p = LBound(arrayOrdinato) to UBound(arrayOrdinato) If arrayOrdinato(p) = vloreDaControllare Then controlUguali = controlUguali +1 End If Next arrayOrdinato(puntatore+controlUguali) = valoreDaControllare End If Next ordinaArrayNumerico = arrayOrdinato End Function
esempio di chiamata:
mioArray = ordinaArrayNumerico(mioArray,"desc")


Rispondi quotando