Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Boucle sur plusieurs plages pour les Trier

  • Initiateur de la discussion Initiateur de la discussion KTM
  • 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 !

KTM

XLDnaute Impliqué
Bonsoir chers tous
Jai neuf plages de données de même dimension que je voudrais trier.
Jai élaboré un code pour les trier une à une mais je voudrais faire plus simple en utilisant une boucle.
Merci de me simplifier mon code.
VB:
Sub TRIER()
Dim PlageDeDonnees As Range
   With Sheets("Cascade")
        ds = 10
        Set PlageDeDonnees = .Range("K22").Resize(ds, 5)
        PlageDeDonnees.Sort key1:=.Range("O22"), order1:=xlAscending, Header:=xlNo
        
        Set PlageDeDonnees = .Range("K52").Resize(ds, 5)
        PlageDeDonnees.Sort key1:=.Range("O52"), order1:=xlAscending, Header:=xlNo
        
        Set PlageDeDonnees = .Range("K82").Resize(ds, 5)
        PlageDeDonnees.Sort key1:=.Range("O82"), order1:=xlAscending, Header:=xlNo
        
        Set PlageDeDonnees = .Range("K112").Resize(ds, 5)
        PlageDeDonnees.Sort key1:=.Range("O112"), order1:=xlAscending, Header:=xlNo

        Set PlageDeDonnees = .Range("K142").Resize(ds, 5)
        PlageDeDonnees.Sort key1:=.Range("O142"), order1:=xlAscending, Header:=xlNo
        
        Set PlageDeDonnees = .Range("K172").Resize(ds, 5)
        PlageDeDonnees.Sort key1:=.Range("O172"), order1:=xlAscending, Header:=xlNo

        Set PlageDeDonnees = .Range("K202").Resize(ds, 5)
        PlageDeDonnees.Sort key1:=.Range("O202"), order1:=xlAscending, Header:=xlNo
        
        Set PlageDeDonnees = .Range("K232").Resize(ds, 5)
        PlageDeDonnees.Sort key1:=.Range("O232"), order1:=xlAscending, Header:=xlNo
        
        Set PlageDeDonnees = .Range("K262").Resize(ds, 5)
        PlageDeDonnees.Sort key1:=.Range("O262"), order1:=xlAscending, Header:=xlNo
   End With
End Sub
 
Bonjour KTM,
Sans fichier test impossible de tester, alors un peu au pif :
VB:
Sub TRIER()
Dim PlageDeDonnees As Range, i%, ds%
   With Sheets("Cascade")
        ds = 10
        For i = 1 To 9
            Set PlageDeDonnees = .Cells(30 * i - 8, "K").Resize(ds, 5)
            PlageDeDonnees.Sort key1:=.Cells(30 * i - 8, "O"), order1:=xlAscending, Header:=xlNo
        Next i
    End With
End Sub

ou encore si vous voulez éviter cette équation 30x-8 :
VB:
Sub TRIER2()
Dim PlageDeDonnees As Range, i%, T
    T = Array(22, 52, 82, 112, 142, 172, 202, 232, 262)
   With Sheets("Cascade")
        ds = 10
        For i = 0 To 8
            Set PlageDeDonnees = .Cells(T(i), "K").Resize(ds, 5)
            PlageDeDonnees.Sort key1:=.Cells(T(i), "O"), order1:=xlAscending, Header:=xlNo
        Next i
    End With
End Sub
 
Dernière édition:
Merci pour le coup de main......
 
- 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
5
Affichages
525
Réponses
1
Affichages
765
  • Question Question
Microsoft 365 Trie par date
Réponses
45
Affichages
4 K
Réponses
0
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…