Macro pour classer par date les colonnes d'un tableau sur plusieurs onglets

Bonjour à toute la communauté,

Est-ce que quelqu'un peut m'aider sur une macro qui me permettrait de classer par date des colonnes d'un tableau et qui le fasse sur plusieurs onglets.

J'ai déjà essayé d'en faire une mais cela ne fonctionne pas plus d'une fois lorsque je dois ajouter une date supplémentaire.

En PJ, le fichier avec des données fictives. J'aimerais classer les données en commençant par la date du 08/04/2022 et en redescendant

jusqu'au 01/01/2022.

Merci par avance pour toute l'aide que vous pourrez m'apporter :)

Sarah

bonsoir,

Sub Sorter_Dates()
     Dim SCA, sh, i, A
     Set SCA = CreateObject("System.collections.arraylist")
     Application.ScreenUpdating = False
     For Each sh In ThisWorkbook.Worksheets
          Application.StatusBar = sh.Name
          With sh
               .Select
               SCA.Clear
               A = .UsedRange.Rows(1).Value2
               For i = 2 To UBound(A, 2)
                    SCA.Add A(1, i)
               Next
               SCA.Sort 'sorter A>Z
               SCA.Reverse 'inverser
               A = SCA.toarray
               For i = 0 To UBound(A)
                    .Columns(i + 2).Insert
                    r = Application.Match(A(i), .Rows(1), 0)
                    If IsNumeric(r) Then
                         .Columns(r).Cut .Columns(i + 2)
                    End If
               Next
          End With

     Next
     Application.ScreenUpdating = True
     Application.StatusBar = ""

End Sub

Bonjour,
Une autre proposition.
Cdlt.

Public Sub SortData()
Dim ws As Worksheet, lastCol As Long, lastRow As Long, rngData As Range, rngHeaders As Range
    For Each ws In ActiveWorkbook.Worksheets
        With ws
            lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
            lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
            Set rngData = .Cells(1).Offset(, 1).Resize(lastRow, lastCol - 1)
            Set rngHeaders = .Cells(1).Offset(, 1).Resize(1, lastCol - 1)
            With .Sort
                .SortFields.Clear
                .SortFields.Add Key:=rngHeaders, SortOn:=xlSortOnValues, Order:=xlDescending
                .SetRange rngData
                .Header = xlYes
                .Orientation = xlLeftToRight
                .Apply
            End With
        End With
    Next ws
End Sub

Bonjour,

Un grand MERCI à vous deux pour la rédaction de ces deux macros que je n'arrive pas à utiliser :( ......étant donné mon niveau sur EXCEL.

C'est pas grave j'ai trouvé une solution qui est chronophage mais bon en attendant que je comprenne mieux ce qui est écrit dans les macros.

A bientôt,

Sarah

Bonjour à nouveau,

Finalement en me creusant les méninges :) j'y suis arrivée :)

ça fonctionne :)

Merci à vous deux :)

Sarah

Rechercher des sujets similaires à "macro classer date colonnes tableau onglets"