Ne garder que la plus ancienne date d'un droupe de ligne

Bonjour

dans un long listing, j'ai les commandes par client et par date, je souhaiterai ne récupérer que la ligne de la première commande pour chaque client (la plus ancienne). Voir la pièce jointe.

Optionnellement je souhaiterai pouvoir choisir la deuxième commande, la troisième, etc. Pour les clients n'ayant fait qu'une commande par exemple je souhaiterai que la ligne soit tout de même "remontée" en indiquant la valeur 0 dans la colonne montant.

Merci beaucoup

Matthieu

31exemple.xlsx (12.64 Ko)

Bonsoir,

Les autres lignes sont-elles à supprimer ?

Amicalement

Claude

bonsoir

Non les autres lignes ne sont pas forcement à retirer si je peux facilement trier les premiers achats (ou deuxième...) de chaque client par la suite.

Merci

Matthieu

re,

Il faut donc masquer les lignes non concernées par le demande,

Je saurais facilement n'afficher que la 1ère commande ou que la dernière (au choix),

mais la 2ème ou 3ème, je ne sais pas faire.

Amicalement

Claude

Merci

je suis preneur de la solution !

matthieu

Bonjour,

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Plg As Range
    If Not Application.Intersect(Target, Range("b2")) Is Nothing Then
        Application.ScreenUpdating = False
        On Error Resume Next
            ActiveSheet.ShowAllData 'libère le filtre
        On Error GoTo 0

            If Target.Count > 1 Or Target = "" Then Exit Sub
        Set Plg = Range("a4:c" & [a65000].End(xlUp).Row + 1)

        '--- tri ---
        If Target = "La 1ère" Then
            Plg.Sort Key1:=Range("a1"), Order1:=xlAscending, Key2:=Range("b1") _
            , Order2:=xlDescending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
            False, Orientation:=xlTopToBottom
        Else
            Plg.Sort Key1:=Range("a1"), Order1:=xlAscending, Key2:=Range("b1") _
            , Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
            False, Orientation:=xlTopToBottom
        End If

        '--- filtre ---
        Range("o2") = "=a5<>a6"
        Plg.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("o1:o2"), Unique:=True
        Range("o2").ClearContents
    End If
End Sub

Amicalement

Claude

Merci beaucoup !

si tu repasse par là,

à+... Claude

Rechercher des sujets similaires à "garder que ancienne date droupe ligne"