Cette source classique tri des données numériques ou alphanumériques mais teste si le tableau est de une ou deux dimensions.
Notez-bien
Tddref est le tableau a 1 ou plusieurs dimension surtout ne mettez pas de parenthéses
debut c'est le début du tableau
fin est la fin du tableau a trié
Source / Exemple :
Public Sub Tri_Rapide(Byval Sens As String, TDDRef, Byval Quelle_Dimension,Byval Debut,Byval Fin)
Static i As Integer, J As Integer, W As Variant, ls As Integer, ndd As Integer
' sens As String est une variable de sens de tri sens 2 trie de A-Z et 1 trie de Z-A ou des nombres
'boolean
On Error Resume Next
ndd = 0
For test = 1 To 2
If UBound(TDDRef, test) > 0 Then ndd = test
If Err.Number = 9 Then
On Error GoTo 0
ndd = test - 1
Exit For
End If
Next
If Sens = "2" Or Sens = ">" Then ls = 1 Else ls = -1
If ndd = 1 Then
For i = Debut To Fin - 1
pointeur = True
For J = 1 To Fin - i
If (TDDRef(J + 1) * ls) >= (TDDRef(J) * ls) Then
Else
W = TDDRef(J + 1)
TDDRef(J + 1) = TDDRef(J)
TDDRef(J) = W
pointeur = False
End If
Next J
If pointeur = True Then Exit For
Next i
ElseIf ndd = 2 Then
If Quelle_Dimension = 2 Then
For i = Debut To Fin - 1
pointeur = True
For J = Debut To Fin - i
If (TDDRef(J + 1, 2) * ls) > (TDDRef(J, 2) * ls) Then
Else
W = TDDRef(J + 1, 2)
TDDRef(J + 1, 2) = TDDRef(J, 2)
TDDRef(J, 2) = W
W = TDDRef(J + 1, 1)
TDDRef(J + 1, 1) = TDDRef(J, 1)
TDDRef(J, 1) = W
pointeur = False
End If
Next
If pointeur = True Then Exit For
Next
Else
For i = Debut To Fin - 1
pointeur = True
For J = Debut To Fin - i
If (TDDRef(J + 1, 1) * ls) > (TDDRef(J, 1) * ls) Then
Else
W = TDDRef(J + 1, 1)
TDDRef(J + 1, 1) = TDDRef(J, 1)
TDDRef(J, 1) = W
W = TDDRef(J + 1, 2)
TDDRef(J + 1, 2) = TDDRef(J, 2)
TDDRef(J, 2) = W
pointeur = False
End If
Next
If pointeur = True Then Exit For
Next
End If
End If
End Sub
Conclusion :
Pas de bugs connus. Cette source fonctionne parfaitement.
IL Y AVAIT PLUSIEURS BUGS DESOLE !
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.