suppression de lignes doublons

mumu

XLDnaute Occasionnel
Bonjour à tous,

J'ai un fichier d'environ 25000 lignes avec des doublons en colonne B (environ 5200 lignes de doublons).
Je cherche à supprimer les doublons pour ne garder que la ligne la plus récente. Sachant qu'il y a des triplets et des doublons.
Dans le fichier exemple, je voudrais supprimer les lignes 4,5,11,12,19,20 et 24.

Je n'arrive pas à écrire la ligne de macro qui ne garderait que la date la plus récente sur les 3.

Quelqu'un de courageux (en ces périodes de vacances) aurait-il une piste ?? J'espère que je me suis bien expliquée.....

D'avance merci !!

Mumu
 

Pièces jointes

  • mumu.xls
    15 KB · Affichages: 46
  • mumu.xls
    15 KB · Affichages: 51
  • mumu.xls
    15 KB · Affichages: 48

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : suppression de lignes doublons

Bonjour,

Code:
Sub supDoublonsTradi()
   Application.ScreenUpdating = False
   Application.Calculation = xlCalculationManual
   [A1].Sort Key1:=Range("B2"), Order1:=xlAscending, _
      Key2:=Range("D2"), Order2:=xlDescending, Header:=xlGuess
   For i = [B65000].End(xlUp).Row To 2 Step -1
     If Cells(i, 2) = Cells(i - 1, 2) Then Rows(i).Delete
   Next i
   Application.Calculation = xlCalculationAutomatic
End Sub

JB
Formation Excel VBA JB
 

Pièces jointes

  • mumu(1).xls
    20.5 KB · Affichages: 62
  • mumu(1).xls
    20.5 KB · Affichages: 61
  • mumu(1).xls
    20.5 KB · Affichages: 62
Dernière édition:

mumu

XLDnaute Occasionnel
Re : suppression de lignes doublons

Salut BOISGONTIER,

Je te remercie pour ce code !
C'est exactement ce qu'il me fallait. Je n'avais pas pensé à le faire dans ce sens là......
Merci aussi pour la rapidité de la réponse !

Bonne journée !

@ +

Mumu
 

suistrop

XLDnaute Impliqué
Re : suppression de lignes doublons

hello,

j ai pas supprimer les ligne , juste masquer pour le moment dit moi si ca te convient.

Sub cartman()
'pour pas voir ce que fais excel
Application.ScreenUpdating = False

Code:
For i = 2 To Range("A65536").End(xlUp).Row
    code = Cells(i, 2)
    ligne_recente = i
    'ici ca va de i a la fin car ils sont classé si ils sont pas classé la boucle doit aller de 2 a la fin
    For y = i + 1 To Range("A65536").End(xlUp).Row
        If Cells(y, 2) = code Then
            If Cells(y, 4) > Cells(ligne_recente, 4) Then
                'j ai choisie de cacher les ligne pour le test pour etre sur que c ets le résultat que tu cherches
                Rows(ligne_recente).Hidden = True
                ligne_recente = y
            Else
                'j ai choisie de cacher les ligne pour le test
                Rows(y).Hidden = True
            End If
        Else
            y = Range("A65536").End(xlUp).Row
        End If
    Next y
Next i

'pour pas voir ce que fais excel
Application.ScreenUpdating = True
End Sub
edit : salut BOISGONTIER j arrive en retard avec un code plus compliqué !!
 

Pièces jointes

  • mumu_cartman.xls
    26 KB · Affichages: 50

mumu

XLDnaute Occasionnel
Re : suppression de lignes doublons

Salut suistrop,

Merci pour ce code !
Il est vrai qu'il est plus compliqué que celui de Boisgontier, mais il résout également le problème, à condition comme tu le précises que les lignes soient déjà triées.
Il faut juste changer le code pour supprimer les lignes.

Merci.

Mumu
 

Discussions similaires

Statistiques des forums

Discussions
312 972
Messages
2 094 056
Membres
105 931
dernier inscrit
Jojoseph