XL 2021 Trier des numéros par ordre croissant lignes et colonnes

  • Initiateur de la discussion Initiateur de la discussion alan5
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

alan5

XLDnaute Nouveau
Bonjour à tous,
mes compétences concernant Excel sont très limitées en VBA.
Je fais donc appel à vos talents.
Tableau comportant les tirages du jeu Crescendo.
1. Plan horizontal. Comment trier les dix numéros sur chaque ligne par ordre croissant,
de la gauche vers la droite.
2. Plan vertical. Éventuellement, tri ensuite des lignes (numéros) sur le plan vertical par
ordre croissant du plus petit au plus grand.
 

Pièces jointes

Bonjour @alan5🙂, à tous😉,

Une macro pour trier chaque ligne (tri par bulle) et une macro pour trier par colonne tel que je l'ai compris et qui conserve l'ordre au sein de chaque ligne.

nota : Le tri par colonne n'est judicieux qu'après avoir trié chaque ligne! C'est pourquoi le choix est donné dans la macro de tri par colonne.

Les codes dans Module1:
VB:
Sub TriChaqueLigne()
Dim DerLig&, t, i&, j&, ech As Boolean, aux
   With Sheets("Feuil1")
      DerLig = .Cells(Rows.Count, "B").End(xlUp).Row
      t = .Range("b6:k" & DerLig).Value
      For i = 1 To UBound(t)
         Do
            ech = False
            For j = 1 To UBound(t, 2) - 1
               If t(i, j) > t(i, j + 1) Then ech = True: aux = t(i, j): t(i, j) = t(i, j + 1): t(i, j + 1) = aux
            Next j
         Loop While ech
      Next i
      .Range("b6:k" & DerLig) = t
   End With
End Sub

Sub TriDesLignesParColonnes()
Dim rep, DerLig&, plage As Range, j&
   rep = MsgBox("Voulez-vous d'abord trier chaque ligne ?", vbYesNo + vbQuestion + vbDefaultButton1)
   With Sheets("Feuil1")
      If rep = vbYes Then TriChaqueLigne
      DerLig = .Cells(Rows.Count, "b").End(xlUp).Row
      Set plage = .Range("b6:k" & DerLig)
      .Sort.SortFields.Clear
      For j = 1 To plage.Columns.Count
         .Sort.SortFields.Add2 Key:=plage.Columns(j), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
      Next j
      With .Sort
         .SetRange plage
         .Header = xlGuess
         .MatchCase = False
         .Orientation = xlTopToBottom
         .SortMethod = xlPinYin
         .Apply
      End With
   End With
End Sub

nb: j'ai repris la présentation de @sylvanu que je salue😉.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
221
F
Réponses
2
Affichages
1 K
F
Réponses
20
Affichages
3 K
FM MEDIAS
F
B
Réponses
4
Affichages
2 K
BobExcel
B
J
Réponses
11
Affichages
2 K
J
L
Réponses
5
Affichages
990
louloubru
L
M
Réponses
3
Affichages
2 K
M
Retour