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

XL 2010 Ajouter un tri.

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

DAVID-44-

XLDnaute Occasionnel
Bonjour à tous,

J’ai un classeur avec une feuille stock. Quand j’utilise le bouton "trier" (macro : meszones), les lignes se trient par ordre alphabétique et c’est parfait.
J’aimerais aussi ajouter, en même temps, un tri par date (colonne « I ») de la plus récente à la plus ancienne.

Merci de votre aide.

Bon après-midi
 

Pièces jointes

Bonjour David44

Un lien qui te sera certainement fort utile

Sinon pour le code, en voici un qui remplace celui du "Module2"
VB:
Dim Zone As Range

Sub MesZones() 'recherche des zones à trier
  With Sheets("STOCK")
    deb = 8
    While .Cells(deb, 2) <> ""
      Set Zone = .Range(.Cells(deb + 1, 2), .Cells(deb + .Cells(deb, 2).CurrentRegion.Rows.Count - 1, .Cells(deb, 2).CurrentRegion.Columns.Count + 1))
      Zone.Select
      deb = .Cells(deb, 3).CurrentRegion.Rows.Count + 3 + deb
      Call trie(Zone)
    Wend
    'Retour début du tableau
    .Cells(8, 1).Select
  End With
End Sub

Sub trie(Zone)
  'Zone.Sort key1:=Zone.Columns(1), Orientation:=xlAscending
  With ActiveSheet.Sort
    With .SortFields
      .Clear
      ' Trier sur le produit
      .Add2 Key:=Zone.Columns(2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
      ' et trier sur la DLC
      .Add2 Key:=Zone.Columns(8), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    End With
    .SetRange Zone
    .Header = xlGuess
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
  End With
End Sub

@+
 
Bonjour BrunoM45,
Merci beaucoup.
J'ai remplacé le code mais j'ai un bug sur la ligne :
.Add2 Key:=Zone.Columns(2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
Je ne comprends pas.
Merci quand même.
Bonne journée à tous.
Merci de votre aide.
 
Bonjour,

Enlève le 2 qui n'est sans doute pas reconnu dans ta version :
.Add Key:=Zone.Columns(2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
' et trier sur la DLC
.Add Key:=Zone.Columns(8), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
 
Bonjour à tous,
Du coup, je reviens vous demander de l'aide, car je viens de m'apercevoir quand utilisant la nouvelle macro (qui trie bien par ordre alphabétique puis par "dlc") mélange la colonne fournisseur et le produit ne correspond plus au bon fournisseur !!!!
Bonne journée à tous.
Merci de votre aide.
 
Bonjour David44

Ne connaissant pas le fichier, j'ai trouvé étrange que la colonne B ne soit pas trier 🤔 mais apparemment il ne faut pas effectivement, il faut alors remettre le code initial de la définition de zone et modifier le numéro des colonnes triées

VB:
Dim Zone As Range

Sub MesZones() 'recherche des zones à trier
  With Sheets("STOCK")
    deb = 8
    While .Cells(deb, 2) <> ""
      'Set Zone = .Range(.Cells(deb + 1, 2), .Cells(deb + .Cells(deb, 2).CurrentRegion.Rows.Count - 1, .Cells(deb, 2).CurrentRegion.Columns.Count + 1))
      Set Zone = .Range(.Cells(deb + 1, 3), .Cells(deb + .Cells(deb, 3).CurrentRegion.Rows.Count - 1, .Cells(deb, 2).CurrentRegion.Columns.Count + 1))
      Zone.Select
      deb = .Cells(deb, 3).CurrentRegion.Rows.Count + 3 + deb
      Call trie(Zone)
    Wend
    'Retour début du tableau
    .Cells(8, 1).Select
  End With
End Sub

Sub trie(Zone)
  'Zone.Sort key1:=Zone.Columns(1), Orientation:=xlAscending
  With ActiveSheet.Sort
    With .SortFields
      .Clear
      ' Trier sur le produit
      .Add2 Key:=Zone.Columns(1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
      ' et trier sur la DLC
      .Add2 Key:=Zone.Columns(7), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    End With
    .SetRange Zone
    .Header = xlGuess
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
  End With
End Sub

@+
 
- 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

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
285
Réponses
9
Affichages
555
  • Question Question
Microsoft 365 tri dans Excell
Réponses
19
Affichages
616
  • Question Question
Power Query tri powerquery
Réponses
9
Affichages
988
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…