Supprimer ligne en fonction d'une date et d'une référence

  • Initiateur de la discussion Initiateur de la discussion ptikaribou
  • Date de début Date de début

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 !

P

ptikaribou

Guest
Bonjour à toute la communauté,

Tout d'abord, merci beaucoup de prendre le temps de me lire.
Je bloque vraiment sur ce problème et j'espère que l'un d'entre-vous aura une solution!!

En fait, je souhaite à partir de la pièce-jointe supprimer les lignes où j'ai plusieurs dates pour la même référence et ne garder que la plus récente tout en affichant le nom du dernier client!

Merci à vous!!!
Hugues
 

Pièces jointes

Dernière modification par un modérateur:
Re : HELP!! Je n'y arrive pas!

Bonjour,
Une solution :
Code:
Sub test()
Dim i%, k%
i = Cells(65535, 1).End(xlUp).Row
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("B2:B" & i) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("C2:C" & i) _
        , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil1").Sort
        .SetRange Range("A1:C" & i)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
For k = i To 2 Step -1
If Cells(k, 2) = Cells(k - 1, 2) Then Rows(k).Delete
Next
End Sub
A+
 
Re : HELP!! Je n'y arrive pas!

Bonsoir ptikaribou et bienvenue sur XLD 🙂

Un essai dans le fichier joint. Les formules sont dans les cellules E2 à G2. Elles sont toutes matricielles et à recopier vers le bas jusqu'à obtenir des cellules vides. Trois noms dynamiques ont été créés.

Les trois noms dynamiques:
[table="width: 500, class: grid"]
[tr]
[td]Clients[/td]
[td]=DECALER(Feuil1!$A$1;1;0;NBVAL(Feuil1!$A:$A)-1;1)[/td]
[/tr]
[tr]
[td]DateVente[/td]
[td]=DECALER(Clients;0;2)[/td]
[/tr]
[tr]
[td]RefProd[/td]
[td]=DECALER(Clients;0;1)[/td]
[/tr]
[/table]

Les trois formules matricielles:[table="width: 650, class: grid"]
[tr]
[td]E2[/td]
[td]=SIERREUR(INDEX(Clients;PETITE.VALEUR(SI(ESTNUM(1/FREQUENCE(EQUIV(Clients;Clients;0);EQUIV(Clients;Clients;0))*(LIGNE(Clients)-1));LIGNE(Clients);""); LIGNE(Clients)-1)-1);"")[/td]
[/tr]
[tr]
[td]F2[/td]
[td]=SI(E2="";"";INDEX(RefProd;MAX(SI((Clients=E2)*(DateVente=MAX(SI(Clients=E2;DateVente;"")))>0;LIGNE(Clients);""))-1))[/td]
[/tr]
[tr]
[td]G2[/td]
[td]=SI(E2="";"";MAX(SI((Clients=E2)*(DateVente=MAX(SI(Clients=E2;DateVente;"")))>0;DateVente;"")))[/td]
[/tr]
[/table]

Formule matricielle: Elle doit être validée par la combinaison des touches Ctrl+Maj+Entrée au lieu de la seule touche Entrée comme une formule classique.
Si la validation matricielle est correcte, alors Excel entoure la formule d'accolades {=.......}.
Chaque fois que cette formule sera modifiée, la validation devra se faire par Ctrl+Maj+Entrée. Les accolades apparaissent à la validation et ne doivent pas être saisies au clavier.
 

Pièces jointes

Dernière édition:
Re : HELP!! Je n'y arrive pas!

Bonsoir à tous

Tout d'abord, merci beaucoup de prendre le temps de me lire.
Voilà c'est fait 😉

maintenant à toi de prendre le temps d'éditer le titre de ta discussion et de la changer pour un titre plus explicite que
[h=2]HELP!! Je n'y arrive pas![/h]
Ceci pour le moteur de recherche interne du forum retrouve ses petits 😉
 
Re : HELP!! Je n'y arrive pas!

VOUS ETES GENIAUX!!! J'ai enfin réussi !! Merci à "bof", "mapomme" et "JCGL" pour leurs réponses!
C'est vraiment excellent d'avoir des gens passionnés prêts à répondre à tout moment.

Merci beaucoup!!!
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour