Supprimer les non-doublons

Bonjour,

A cause de ma base de données limitée en critères de recherche, je dois recouper différents fichiers Excel avec les mêmes données. Après copier-coller dans un seul document, je me retrouve donc avec de nombreuses lignes identiques (Prénom - Nom - Adresse email) et souhaiterai supprimer les non-doublons (ou conserver uniquement les doublons). Une manipulation pourrait-elle m'aider à supprimer les non-doublons ? Ou une formule qui préciserait une donnée dans la 4ème colonne et me permettrait de supprimer les lignes qui n'apparaissent qu'une seule fois ?

J'espère être assez clair

Merci de votre aide,

Sébastien

Bonjour Supernova!

j'ai trouvé cette solution (sans doute pas la meilleure)

Bonne journée

Fabienne

Merci Fabienne ! J'ai tenté de mettre la formule en place mais ça n'a pas fonctionné.

J'ai pris un extrait de mon fichier mais j'ai près de 13 000 lignes au final et parfois, j'ai même des "triplons" au-delà des doublons !

Merci de ton aide,

Supernova

107exemple.csv (447.00 Octets)

Re-bonjour,

Chez moi, cela fonctionne correctement.

La formule fonctionne que les éléments soient en double, triple ou autre, cela n'a pas d'importance puisqu'elle calcule lorsque l'éléments est présent plus d'une seule fois.

Le fichier que tu envoies est en .csv. L'explication vient peut-être de là

Voilà ton fichier . J'ai modifié la formule car il est préférable de le faire sur le nom et non le prénom

Cordialement,

Fabienne

Bonjour,

voila une macro qui fonctionne normalement mais en l'exécutant deux fois, je ne vois pas ou est le problème avec Derli:

Sub Macro1()

Dim Derli As String
Dim I As Long
Derli = Range("A" & Rows.Count).End(xlUp).Row
Range("D2:D" & Derli).FormulaLocal = "=NB.SI($A$2:$A$10;A2)"
For I = 2 To Derli
If Range("d" & I).Value = 1 Then Rows(I).EntireRow.Delete
Next
End Sub

Cdt


RE,

et puis rajouter à la fin l'instruction pour effacer le contenu de la colonne d:

Range("D2:D" & Derli).ClearContents

Cdt

gestionnaire_rh

Bonsoir à tous,

gestionnaire_rh,

Quand on supprime ou insère des lignes, il faut partir du bas !

For I = Derli To 2 Step -1

Sébastien,

il n'y a pas d'en-têtes sur ton fichier ?

j'aurai une solution par filtre

Amicalement

Claude

Bonjour à tous!

Les macros, je connais pas.

Je laisse donc la main.

Bonne journée et bon courage!

Fabienne

Bonjour tous le monde,

Voici le code corriger et il fonctionne sur un seul clique et tu n'a pas besoin de rajouter la ligne pour les entêtes de colonnes:

Sub Macro1()

Dim Derli As String
Dim I As Long
Derli = Range("A" & Rows.Count).End(xlUp).Row
Range("D1:D" & Derli).FormulaLocal = "=NB.SI($A$1:$A$" & Derli & ";A1)"
For I = Derli To 2 Step -1
If Range("d" & I).Value = 1 Then Rows(I).EntireRow.Delete
Next
Range("D1:D" & Derli).ClearContents
End Sub

Bonjour

Une autre manière de faire (sur la base de la macro de gestionnaire_rh)

A vérifier sur de grands fichiers

Option Explicit

Sub Macro1()
Dim Derli As Long
Dim I As Long

  Application.ScreenUpdating = False
  Derli = Range("A" & Rows.Count).End(xlUp).Row
  Columns("D").Insert
  With Range("D1:D" & Derli)
    .FormulaLocal = "=SI(NB.SI($A$1:$A$" & Derli & ";A1)>1;1;"""")"
    .Value = .Value
  End With
  Range("A1:D" & Derli).Sort Key1:=Range("D1"), Order1:=xlAscending, Header:=xlNo, _
                      OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                      DataOption1:=xlSortNormal
  On Error Resume Next
  Range("D1:D" & Derli).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  Columns("D").Delete
End Sub

Bonjour tou(te)s

Un exemple VBA sans formule

à tester.

A+

Rechercher des sujets similaires à "supprimer doublons"