Trier ligne tableau suivant la date entrée

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

  • Essai libellule85 30 12 16.xlsm
    27.6 KB · Affichages: 36

libellule85

XLDnaute Accro
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" !
 

libellule85

XLDnaute Accro
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

  • Essai Libellule85 tri auto sur dates.xlsm
    41.7 KB · Affichages: 34

job75

XLDnaute Barbatruc
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

  • Essai libellule85 30 12 16(1).xlsm
    24.3 KB · Affichages: 39

Statistiques des forums

Discussions
312 885
Messages
2 093 259
Membres
105 660
dernier inscrit
moi46