Trier sous excel

Résolu
Bonjour,
Je souhaiterais faire un tri de nombres par ordre croissant sous excel. Mais ligne par ligne.
Par exemple si j'ai deux lignes L1: 3 5 2 1 9 8
et L2: 12 8 3 4 6 2
Je voudrais obtenir L1: 1 2 3 5 8 9
et L2: 2 3 4 6 8 12
J'ai bien trouvé comment trier en faisant ligne par ligne,mais vu que mon tableau comporte 36000 j'aimerais trouver quelque chose de plus rapide.
Par contre j'ai regarder les réponses y'a souvent de la programmation,ça ne me fait pas peur parce que les langages se ressemblent un peu toujours, mais sous excel je ne sais absolument pas ce qu'il faut faire, ni comment ça marche.
Merci d avance pour les réponses
Configuration: Windows XP
Firefox 2.0.0.14

7 réponses

  1. Contributeur
    Bonjour,
    une piste..
    Dim i as long, e as long, B as Boolean
    Dim Swap as variant
    For i = 1 To DernièreLigneAtester
    Reco:
    for e = 1 to derniereColonneAtester-1
    if cells(i,e) > cells(i,e+1) then
    Swap=cells( i, e) : cells( i, e) = cells( i, e + 1) : cells( i, e + 1) = Swap
    B = True
    end if
    next e
    if B then B=False : goto Reco
    Next i
    Essaye ca (pas tester) mais le principe est bon..
    A+
    0
    1. Merci pour l'info, mais juste le détail pratique qui tue: Tu le tapes ou ce programme??????
      0
  2. Contributeur
    Wooouuuuah, je ,pensais pas que tu débutait en VBA
    Donc je reprend
    Dans Excel tu tape Alt+F11
    sur la gauche de l'IDE (éditeur de code ou de macro) tu a l'explorateur de projet.
    >> Insertion >> Module
    dans la feuille qui vient de s'ouvrir tu fais copier/Coller du code ci-dessous

    Sub Trie()
    Dim i As Long, e As Long, B As Boolean
    Dim Swap As Variant
        For i = 1 To 5 'Mettre le nombre de ligne à tester
    Reco:
            For e = 1 To 4 - 1 'mettre le nombre de colonnes à tester
                If Cells(i, e) > Cells(i, e + 1) Then
                Swap = Cells(i, e): Cells(i, e) = Cells(i, e + 1): Cells(i, e + 1) = Swap
                B = True
                End If
            Next e
            If B Then B = False: GoTo Reco
        Next i
    End Sub
    


    Pour le test j'ai mis des nombres dans le désordre dans les cellules de A1 à D5
    et voila le résultat.

    1	2	6	7
    4	8	12	23
    4	5	6	8
    1	2	5	8
    4	9	12	45

    Bon, pour activer, tu met des séries dans le désordre comme tu veux dans ces cellules...
    Tu retourne dans 'IDE
    Tu met le curseur au milieu de la sub et tu tape F5
    J'espère avoir été asser explicit !
    A+
    0
    1. rebonjour, j'espère qu'il y a encore du monde....
      bon je suis vraiment pour le VBA effectivement je connais la programmation mais j'ai jamais travailler avec ça.
      Donc j'ai bien réussi a rentrer le module (tu as té parfaitement explicite!!) mais pour l'appliquer je fais quoi, j'ai essayé de sélectionner des lignes a trier et pis je suis retournée dans le alt F11, j'ai cliqué sur module 1 et quand je fais F5 il m'ouvre une fenêtre je mets exécuter,mais y s'est rien passé dans mon tableau.....Donc en fait j'ai pas exactement compris les deux dernières lignes d'explications.
      Mais merci tout plein
      A+
      0
      1. ah désole en fait le programme il fait bien quelque chose mais pas vraiment ce que je veux:
        je lu rentre et je sélectionne les deux lignes
        1 3 6 12 13 15 17 2
        10 13 15 11 19 12 9 14
        et il me rend
        6 1 3 15 12 13 17 2
        15 10 13 11 19 12 9 14
        OUPS!
        ET pis il a pas l'air de marcher a chaque fois.....
        j'ai bien modifier nombres de ligne et colonnes dans le programme
        Merci merci
        0
        1. Contributeur
          En fait le programme y fait exactement ce que tu veux, je sais pas ce que tu à fait...
          Pour exemple charge le fichier sur Ce fichier
          Pour le charger tu le SauveSous sur ton DD
          Tu clic sur le bouton et...
          A+
          0
          1. super!!!!!!!
            mille merci pour le lien et pour ton boulot.
            Bonne soiree
            0
            1. probleme resolu
              0