suppression de lignes doublons

  • Initiateur de la discussion Initiateur de la discussion mumu
  • 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 !

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

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

Dernière édition:
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
 
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

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

Réponses
4
Affichages
1 K
Retour