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
A voir également:

2 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
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