Microsoft 365 Macro trie de A à Z valable sur toutes feuilles

Scorpio

XLDnaute Impliqué
Bonjour à tous,
Comme je ne suis pas un champion en code VBA, j'aimerais vous demander si possible de l'aide, merci d'avance.

En fait, cette macro trie les données de A à Z, colonne "C" mais, seulement pour la feuille "MENU".
Est-ce possible d'avoir une macro qui puisse faire le tri de A à Z, colonne "C" est qui s'utilise sur toute les feuilles ?

Merci et à +++++
 

Pièces jointes

  • Macro de A à Z pour toutes les feuilles.xlsm
    26.2 KB · Affichages: 14

soan

XLDnaute Barbatruc
Inactif
Bonjour Scorpio,

ton fichier en retour. :)

j'ai réécrit ton code VBA ; ça fait le tri seulement pour ta 1ère feuille "Menu" ;
je n'ai rien fait pour "Feuil2" à "Feuil5" car ces 4 feuilles sont vides !

pour "Menu", ça fait un tri croissant des nombres de la colonne C « Somme ».
en C1, peut-être devrais-tu mettre « Rang » au lieu de « Somme » ?

si tu veux un tri pour plusieurs feuilles, je veux bien t'aider, mais
joins un fichier avec un tableau à trier sur chaque feuille ! 😁


soan
 

Pièces jointes

  • Tri croissant de la colonne C « Somme ».xlsm
    20 KB · Affichages: 5
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Scorpio, Soan,
En PJ je tri trie les données de A à Z de la colonne A ( et non de la colonne C qui est numérique ) . Le tri est automatique dès qu'on sélectionne une feuille.
La macro est dans ThisWorkbook pour être applicable à toutes les feuilles.
VB:
Sub Workbook_SheetActivate(ByVal Sh As Object)
    Application.ScreenUpdating = False
    Range("A1:D100").Select
    ActiveSheet.Sort.SortFields.Clear
    ActiveSheet.Sort.SortFields.Add Key:=Range("A2:A100"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveSheet.Sort
        .SetRange Range("A1:D100")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    [A1].Select
End Sub
 

Pièces jointes

  • Macro de A à Z pour toutes les feuilles.xlsm
    19 KB · Affichages: 2

Scorpio

XLDnaute Impliqué
Bonjour soan,
Voici le classeur, c'est pas la colonne "C", mais la "D".
J'ai corrigé le code, et a mon avis c'est bon. Cela fonctionne pour toutes feuilles
Est-ce que pour toi c'est correct ??

Merci soan
 

Pièces jointes

  • Tri croissant de la colonne D.xlsm
    36.4 KB · Affichages: 4

Scorpio

XLDnaute Impliqué
Bonjour Scorpio, Soan,
En PJ je tri trie les données de A à Z de la colonne A ( et non de la colonne C qui est numérique ) . Le tri est automatique dès qu'on sélectionne une feuille.
La macro est dans ThisWorkbook pour être applicable à toutes les feuilles.
VB:
Sub Workbook_SheetActivate(ByVal Sh As Object)
    Application.ScreenUpdating = False
    Range("A1:D100").Select
    ActiveSheet.Sort.SortFields.Clear
    ActiveSheet.Sort.SortFields.Add Key:=Range("A2:A100"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveSheet.Sort
        .SetRange Range("A1:D100")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    [A1].Select
End Sub
Bonjour sylvanu,
Et merci de ton aide, je vais tester.
A+++
 

soan

XLDnaute Barbatruc
Inactif
@Scorpio

Tri croissant des dates de la colonne D ; après clic sur le bouton :

Image.jpg

VB:
Option Explicit

Sub Tri_colD() 'Tri croissant de la colonne D "Date"
  Dim dlg&: Application.ScreenUpdating = 0
  dlg = Cells(Rows.Count, 1).End(3).Row
  If dlg > 2 Then Range("A2:D" & dlg).Sort [D2], 1
End Sub
soan
 

Pièces jointes

  • Tri croissant de la colonne D « Date ».xlsm
    20.1 KB · Affichages: 5
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@Scorpio

lis d'abord mon post précédent.

voici ton adaptation de mon code VBA :

VB:
Option Explicit

Sub Tri_colD() 'Tri croissant de la colonne D "Somme"
  Dim dlg&: Application.ScreenUpdating = 0
  dlg = Cells(Rows.Count, 1).End(4).Row
  If dlg > 2 Then Range("A2:D" & dlg).Sort [D2], 1
End Sub
il y a 2 erreurs dans cette adaptation :

* pour le commentaire, tu as laissé "Somme" ; à remplacer par "Date"

* ce n'est pas .End(4) mais .End(3) ! 4 = xlDown ; 3 = xlUp


soan
 

Discussions similaires

Réponses
12
Affichages
447
Réponses
20
Affichages
628
Réponses
2
Affichages
231

Statistiques des forums

Discussions
314 499
Messages
2 110 247
Membres
110 711
dernier inscrit
chmessi