Trier ligne tableau suivant la date entrée

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

libellule85

XLDnaute Accro
Bonjour le forum,

Je recherche une macro qui puisse me permettre de trier automatiquement un tableau par ligne quand j'entre une date dans la première colonne, et quand on la supprime cela doit supprimer la ligne.
D'avance merci pour votre aide
 

Pièces jointes

Bonsoir pierrejean,

Merci beaucoup pour ta réponse, quand je rajoute une ligne par la tabulation (normal pour un tableau) cela provoque une erreur dans la macro :
"Erreur d'exécution '13' - Incompatibilité de type" et cela bug sur la ligne " If Target.Count = 1 And Target.Value = "" Then" !
 
Bonjour le forum,

je reviens vous pour améliorer la macro de pierrejean et chris (que je remercie une nouvelle fois !).
Actuellement, la macro utilise xlAscending (du + vieux au plus récent) et j'aimerais pouvoir également utiliser xlDescending (du + récent au plus vieux) :
ne serait-il pas possible quand on entre une date dans la première colonne la macro pose la question sur le choix du classement que l'on veut ?
D'avance merci beaucoup pour votre aide.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 2 And Target.Column = 1 Then
If Target.Count > 1 Then Exit Sub
  If Target.Value = "" Then
    Application.EnableEvents = False
        Rows(Target.Row).Delete
    Application.EnableEvents = True
  End If
  ActiveWorkbook.Worksheets("Feuil1 (2)").ListObjects("Tableau1").Sort.SortFields _
        .Clear
    ActiveWorkbook.Worksheets("Feuil1 (2)").ListObjects("Tableau1").Sort.SortFields _
        .Add Key:=Range("Tableau1[date]"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1 (2)").ListObjects("Tableau1").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End If
End Sub
 

Pièces jointes

Bonjour à tous,

Tri croissant des dates si l'on entre une date normale, tri décroissant si l'on fait suivre la date d'un astérisque * :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dat$
With ListObjects(1).DataBodyRange
    If Intersect(Target, .Columns(1)) Is Nothing Or Target.Count > 1 Then Exit Sub
    If Target = "" Then
        Rows(Target.Row).Delete
    Else
        If Right(Target, 1) = "*" Then dat = Replace(Target, "*", "")
        If IsDate(dat) Then Target = CDate(dat)
        .Sort .Columns(1), IIf(dat = "", 1, 2), Header:=xlYes
    End If
End With
End Sub
Fichier joint.

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Tableau
Réponses
5
Affichages
248
Réponses
2
Affichages
188
Réponses
5
Affichages
337
Réponses
16
Affichages
400
Retour