Trier en une fois deux lots de colonne et lignes

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,

Je voudrai trier les colonnes D2:N20 et D22:N40 tout ça sur la même macro, est-ce possible, le tri se ferait en changeant de feuille car j'ai 10 feuilles, je veux dire que quand je vais sur la 2 et que je retourne sur la 1 le tri est fait. Merci

Configuration: Windows / Chrome 77.0.3865.120

2 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Tu te sers de l'enregistreur de macro pour faire ton tri.

    Ensuite tu vas dans ThisWorkbook et tu mets ceci:

    Option Explicit
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Macro1 ' a adapter le nom de la macro que tu as obtenu avec l'enregistreur
    End Sub
    
    


    Voilà c'est simple, à chaque changement de feuille la macro se déclenchera

    0
    1. Utilisateur anonyme
       
      Bonjour,
      Cela fonctionne pour les D2:N20 Mais pas pour les lignes D22:N40, comment faire pour que cela trie, la partie 1 (D2:N20) et la partie 2 (D22:N40).
      Merci.
      Salutations.
      0
    2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Essaie avec 2 macros

      et tu changes cela comme ceci:
      Option Explicit
      
      Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
      Macro1 ' a adapter le nom de la macro que tu as obtenu avec l'enregistreur
      Macro2 ' a adapter le nom de la macro que tu as obtenu avec l'enregistreur
      End Sub


      @+ Le Pivert
      0
  2. Utilisateur anonyme
     
    Bonjour,
    J'ai trouvé une autre solution, par diablo
    diablo13800 772
    22 oct. 2019 à 10:55
    0
    Merci
    Bonjour,

    Vous devriez essayer de l'écrire en deux lignes:
    .Range("D3:P22").Sort key1:=.Range("D3"), order1:=xlAscending, Header:=xlNo
    .Range("D23:P41").Sort key1:=.Range("D23"), order1:=xlAscending, Header:=xlNo
    Je vous remercie, je vais essayé votre solution pour voir qu'elle est la mieux.
    Cordialement
    0