Microsoft 365 tri date automatique par macros

christophe027

XLDnaute Nouveau
Bonjour à tous,
Je voudrais faire un tri automatique par date (colonne N) pour que toute la ligne bouge.

J'ai tenté d'ajouter des macros, mais ça bloque quelque part, (je ne m'y connait pas beaucoup à ce niveau là)
peut-être a cause des cellules qui sont sur 2 lignes ?!

pouvez vous m'aider, merci d'avance !
 

Pièces jointes

  • PLANNING 2022.xlsm
    458.6 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re bonjour Christophe,
Rien n'est pire que des cellules fusionnées, et votre fichier en est plein.
Ne serait t-il pas possible de les supprimer ?
Le seul cas dans votre fichier où cela semble utile est en Z89 Z90 ou vous avez E et L.
Est il possible de mettre "E L" dans une même cellule ?
Sinon trier ça, ça va être compliqué, même en VBA.
 

christophe027

XLDnaute Nouveau
Je viens de réussir avec ceci :
Sub Tri_Dates()
Dim Lg As Long, OldFormat As String
Application.ScreenUpdating = False
Lg = Range("N" & Rows.Count).End(xlUp).Row
OldFormat = Range("N7").NumberFormat
Range("A7:BJ" & Lg).NumberFormat = "0"
'Range(A7:BJ" & Lg).Select
Range("A7:BJ" & Lg).Sort Key1:=Range("N7"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A7:BJ" & Lg).NumberFormat = OldFormat
Application.ScreenUpdating = True
End Sub

en revanche, quand j'ajoute une ligne ça ne s'actualise pas, il faut que j'aille dans macro et que je fasse exécuter, et là, la ligne va se ranger dans l'ordre chronologique.
une idée de pourquoi il faut que je fasse éxécuter ?
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
essayez cette PJ avec :
VB:
    Application.ScreenUpdating = False
    Dim DL%
    DL = Range("B65500").End(xlUp).Row
    ActiveWorkbook.Worksheets("Planning").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Planning").Sort.SortFields.Add Key:=Range("N7:N" & DL _
        ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Planning").Sort
        .SetRange Range("A7:BJ" & DL)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A2").Select
    Application.ScreenUpdating = True
End Sub
Attention, pour CV210251 vous avez une date 15 janvier 1900.
 

Pièces jointes

  • Christophe - PLANNING 2022 V2.xlsm
    646.5 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
en revanche, quand j'ajoute une ligne ça ne s'actualise pas
Vous voulez que cela s'actualise automatiquement ?
Si oui, quand ? Quand vous modifiez la colonne N ?
Mais il faut alors avoir une colonne pleine, comme ici en colonne B sinon cela ne marchera pas.
Pourquoi ne pas mettre la macro sur un bouton ?
 

Pièces jointes

  • Christophe - PLANNING 2022 V3.xlsm
    647.5 KB · Affichages: 4

christophe027

XLDnaute Nouveau
Oui j'aimerai que ce soit automatique lorsque l'on rentre la date (colonne N).
Sinon oui on peut mettre un bouton tout en haut par exemple, ça me convient très bien aussi.
Je pense avoir réussi à ajouter, le bouton.
Tout semble fonctionner correctement.
 

Pièces jointes

  • Christophe - PLANNING 2022 V2 (1).xlsm
    694.3 KB · Affichages: 11