Macro tri automatique, mais sur tous les onglets

Bonjour à tous et très belle année 2019!

Avec les moyens du bord et mon (petit) savoir sur Excel, j'essaie de me simplifier la vie, sauf que là je bute...

Je trouve généralement les réponses en lisant le forum. Là j'ai trouvé quelqu'un qui avait posé une question similaire, dont le problème avait été résolu, mais le code n'est pas fonctionnel dans mon tableau

Alors voilà, je pose ici mon premier message et problème sur Excel, pour ceux qui pourrait éventuellement avoir le génie de ce logiciel :

J'ai un classeur avec plusieurs onglets. Sur chaque feuille, la présentation de mes champs est la même (colonne H : date)

Je voudrait créer un tri automatique (ou avec raccourci, peu importe) de mes champs A5 à L3000, en fonction de cette colonne H, dans l'ordre du plus petit au plus grand.

Dernière contrainte ... cette macro ne doit pas prendre en compte l'onglet 1

Un grand merci à tous

Jennifer

bonjour,

une proposition

Sub aargh()
    For i = 2 To Worksheets.Count
        With Worksheets(i)
            dc = .Cells(5, Columns.Count).End(xlToLeft).Column
            dl = .Cells(Rows.Count, "H").End(xlUp).Row
            .Cells(5, 1).Resize(dl - 4, dc).Sort key1:=.Range("H5"), order1:=xlDescending, Header:=xlNo
        End With
    Next i
End Sub

Merci beaucoup pour la réponse SI rapide! Cependant, ça ne se met pas à jour... est-ce qu'il serait mieux d'avoir un raccourci clavier pour activer la macro ??

Merciiii

Je vois que cette info est en surbrillance et que de fait, la macro échoue ... :

.Cells(5, 1).Resize(dl - 4, dc).Sort key1:=.Range("H5"), order1:=xlAscending, Header:=xlNo

Etrange, car elle fonctionne sur certains classeurs, mais pas sur d'autres, alors que tous ont le meme format

Bonjour,

pour être plus en ligne avec ta demande

Sub aargh()
    For i = 2 To Worksheets.Count
        With Worksheets(i)
            .Range("A5:L3000").Sort key1:=.Range("H5"), order1:=xlAscending, Header:=xlNo
        End With
    Next i
End Sub

Merci !

Malheureusement, il me met le même message d'erreur :

"la méthode Sort de la classe Range a échoué"

.Range("A5:L3000").Sort key1:=.Range("H5"), order1:=xlAscending, Header:=xlNo

Bonjour,

peut-être as-tu des onglets cachés ou protégés ?

mets-nous ton fichier.

Bonjour,

Pour que ça se mette à jour, rajoutez ce code dans la feuille intitulée "ThisWorkbook"

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Call aargh
End Sub

Ici, la macro se lancera à chaque fois qu'une des feuilles est modifiée (j'espère juste que ça ne sera pas trop lourd, tout dépend de la taille du fichier)

Concernant le code d'erreur, remplacez le code de votre fichier par le suivant

Sub aargh()
    For i = 2 To Worksheets.Count
        With Worksheets(i)
            dc = .Cells(5, Columns.Count).End(xlToLeft).Column
            dl = .Cells(Rows.Count, "H").End(xlUp).Row
            On Error Resume Next
            .Cells(5, 1).Resize(dl - 4, dc).Sort key1:=.Range("H5"), order1:=xlDescending, Header:=xlNo
        End With
    Next i
End Sub

Cordialement

C'est parfait, tout fonctionne!!

Merci 1000 fois!

C'est parfait, tout fonctionne!!

Merci 1000 fois!

mais on ne sait pas pourquoi on a une erreur.

Rechercher des sujets similaires à "macro tri automatique tous onglets"