la seguente funzione serve per ordinare, in maniera crescente o descrescente, un array di dati alfa-numerici.
esempio di chiamata:
codice:
    
    mioArray = ordinaArrayAlfaNumerico(mioArray, "desc")
funzione:
codice:
Function ordinaArrayAlfaNumerico(arrayDaOrdinare, tipoOrdinamento)
	
	ReDim arrayOrdinato(UBound(arrayDaOrdinare))
	stringaCaratteri = "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,r,t,u,v,w,x,y,z"
	ArrayCaratteri = split(stringaCaratteri,",")
	
	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)
		
			sommaPosizioniB = ""
			sommaPosizioniA = ""
			For countCaratteri = 1 to Len(valoreDaControllare)
				For countArrayCaratteri= LBound(ArrayCaratteri) to UBound(ArrayCaratteri)
					If ArrayCaratteri(countArrayCaratteri) = LCase(Mid(valoreDaControllare,countCaratteri,1)) Then
						sommaPosizioniA = sommaPosizioniA & countArrayCaratteri
					End If
					If ArrayCaratteri(countArrayCaratteri) = LCase(Mid(arrayDaOrdinare(z),countCaratteri,1)) Then
						sommaPosizioniB = sommaPosizioniB & countArrayCaratteri
					End If
				Next
			Next
			
			If sommaPosizioniA = "" Then sommaPosizioniA = 1 Else sommaPosizioniA = sommaPosizioniA
			If sommaPosizioniB = "" Then sommaPosizioniB = 1 Else sommaPosizioniB = sommaPosizioniB
			
			Select Case ordinamentoArray
				Case 0
					If sommaPosizioniA<=sommaPosizioniB Then
						puntatore=puntatore - 1
					End If
				Case 1
					If sommaPosizioniA>=sommaPosizioniB 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 LCase(arrayOrdinato(p)) = LCase(valoreDaControllare) Then
					controlUguali = controlUguali +1		
				End If
			Next
			arrayOrdinato(puntatore+controlUguali) = valoreDaControllare
		End If
	Next
	
	ordinaArrayAlfaNumerico = arrayOrdinato
	
End Function