Trier du plus grand au plus petit
Résolu/Fermé
mic6259
Messages postés
342
Date d'inscription
mercredi 4 mars 2015
Statut
Membre
Dernière intervention
11 décembre 2023
-
19 mai 2020 à 07:38
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 20 mai 2020 à 15:51
ccm81 Messages postés 10903 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 19 novembre 2024 - 20 mai 2020 à 15:51
A voir également:
- Trier un graphique du plus grand au plus petit
- Excel trier du plus grand au plus petit - Guide
- Changer carte graphique - Guide
- Comment faire un graphique sur excel - Guide
- Petit colis distribution - Forum Réseaux sociaux
- Petit 1 comme ² ✓ - Forum Windows
4 réponses
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 426
19 mai 2020 à 15:32
19 mai 2020 à 15:32
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
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
Le Pingou
Messages postés
12199
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 450
19 mai 2020 à 09:11
19 mai 2020 à 09:11
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
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
mic6259
Messages postés
342
Date d'inscription
mercredi 4 mars 2015
Statut
Membre
Dernière intervention
11 décembre 2023
1
19 mai 2020 à 10:19
19 mai 2020 à 10:19
Merci Le Pingou pour la réponse rapide.
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.
Cordialement
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.
Cordialement
Le Pingou
Messages postés
12199
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 450
>
mic6259
Messages postés
342
Date d'inscription
mercredi 4 mars 2015
Statut
Membre
Dernière intervention
11 décembre 2023
19 mai 2020 à 21:05
19 mai 2020 à 21:05
Bonsoir,
Eh bien oui j'ai compris tout de travers et heureusement que ccm81 poste 4 (salutations et merci) est venu proposer la solution correcte.
Salutations.
Le Pingou
Eh bien oui j'ai compris tout de travers et heureusement que ccm81 poste 4 (salutations et merci) est venu proposer la solution correcte.
Salutations.
Le Pingou
Yoyo01000
Messages postés
1639
Date d'inscription
samedi 2 février 2019
Statut
Membre
Dernière intervention
7 mars 2022
166
19 mai 2020 à 12:02
19 mai 2020 à 12:02
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 !
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 !
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 426
20 mai 2020 à 15:51
20 mai 2020 à 15:51
Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, dans ton premier message)
Bon après midi
Bon après midi
19 mai 2020 à 21:06
Salutations
Le Pingou
20 mai 2020 à 07:34
Super le fichier, serait-il possible de faire l'inverse du plus petit au plus grand.
merci beaucoup
Cdlmnt
20 mai 2020 à 10:01
J’ai étudié votre code et je ne comprends pas à quoi sert l’argument ‘cd’ de la Sub TriSellc au niveau de la ligne
If UCase(cd) = "C" Then ou cd = "D"
Merci de votre lumière.
Salutations
Le Pingou
20 mai 2020 à 11:45
Et la lumière fut ;-)
Croissant Décroissant
Bonne journée
Modifié le 20 mai 2020 à 11:48
Call TriSel1C(T, "C")
Bonne journée