XL 2010 Ajouter un tri.

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

  • STOCK. DAVID..xlsm
    227.8 KB · Affichages: 19
C

Compte Supprimé 979

Guest
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

@+
 

DAVID-44-

XLDnaute Occasionnel
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.
 

gbinforme

XLDnaute Impliqué
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
 

DAVID-44-

XLDnaute Occasionnel
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.
 
C

Compte Supprimé 979

Guest
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

@+
 

Statistiques des forums

Discussions
315 144
Messages
2 116 725
Membres
112 848
dernier inscrit
Sylvester K Pope