Trier du plus grand au plus petit

Résolu
mic6259 Messages postés 371 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

4 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    1
    1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
       
      Merci, c'est super bien réalisé.
      Salutations
      Le Pingou
      0
    2. mic6259 Messages postés 371 Statut Membre 1
       
      Bonjour ccm81
      Super le fichier, serait-il possible de faire l'inverse du plus petit au plus grand.
      merci beaucoup
      Cdlmnt
      0
    3. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
       
      Bonjour ccm81,
      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
      0
    4. ccm81 Messages postés 11033 Statut Membre 2 434 > Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Salut Le Pingou

      Et la lumière fut ;-)
      Croissant Décroissant

      Bonne journée
      0
    5. ccm81 Messages postés 11033 Statut Membre 2 434 > mic6259 Messages postés 371 Statut Membre
       
      Tu changes le "D" comme décroissant en "C" comme croissant
      Call TriSel1C(T, "C")

      Bonne journée
      0
  2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    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

    0
    1. mic6259 Messages postés 371 Statut Membre 1
       
      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
      0
      1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478 > mic6259 Messages postés 371 Statut Membre
         
        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
        0
  3. Yoyo01000 Messages postés 1720 Date d'inscription   Statut Membre Dernière intervention   168
     
    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 !
    0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, dans ton premier message)

    Bon après midi
    0