Trier du plus grand au plus petit
Résolu
mic6259
Messages postés
371
Statut
Membre
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
J'ai trouvé le code sur internet.
Pourriez-vous m'aider a trier le fichier joint du plus grand au plus petit.
Merci beaucoup
https://cjoint.com/c/JEtfJalpXm8
J'ai trouvé le code sur internet.
Pourriez-vous m'aider a trier le fichier joint du plus grand au plus petit.
Merci beaucoup
https://cjoint.com/c/JEtfJalpXm8
4 réponses
-
Bonjour à tous
Mais il faut trier les 4 colonnes tous ensemble pour obtenir du plus grand a la colonne A au plus petit jusqu'à la colonne D.
Comme ça ?
https://www.cjoint.com/c/JEtnEOHwUUB
Cdlmnt
PS. Ne pas oublier de sélectionner la plage à trier avant Ctrl+k -
Bonjour,
J’ai mis des titres de colonnes et réalisé un autre code. Bonne découverte.
Merci du retour.
Le lien : https://www.cjoint.com/c/JEthkjn0oA0
-
Bonjour, il manque des déclarations de variable dans ton code, les voici :
Option Compare Text
Sub TriMC2()
Dim i
Dim j
Dim lig
Set rng1 = Range("A2:A10,B2:B10,C2:C10") ' à adapter
Dim temp(), temp2()
ReDim temp(rng1.Count)
ReDim temp2(rng1.Count)
lig = 0
For i = 1 To rng1.Areas.Count
For j = 1 To rng1.Areas(i).Count
If rng1.Areas(i)(j) <> "" Then
lig = lig + 1
temp(lig) = rng1.Areas(i)(j)
temp2(lig) = rng1.Areas(i)(j).Offset(, 1)
End If
Next j
Next i
Call Tri2(temp, temp2, 1, lig)
lig = 0
For i = 1 To rng1.Areas.Count
For j = 1 To rng1.Areas(i).Count
lig = lig + 1
rng1.Areas(i)(j) = temp(lig)
rng1.Areas(i)(j).Offset(, 1) = temp2(lig)
Next j
Next i
End Sub
Sub Tri2(a, b, gauc, droi) ' Quick sort
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
Do While a(g) < ref: g = g + 1: Loop
Do While ref < a(d): d = d - 1: Loop
If g <= d Then
tmp = a(g): a(g) = a(d): a(d) = tmp
tmp2 = b(g): b(g) = b(d): b(d) = tmp2
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call Tri2(a, b, g, droi)
If gauc < d Then Call Tri2(a, b, gauc, d)
End Sub
à tester !
-
Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, dans ton premier message)
Bon après midi