Supprimer Des Doublons

JeEbZzZz

XLDnaute Nouveau
Bonjour,

j'ai une base de contacts dans lesquels je retrouve des doublons.
Comment faire pour les supprimer rapidement et ainsi avor une base "propre"?

Ces bases sont assez longues, je peut repérer les doublons grâce à un TCD mais supprimer tous les doublons à la main prendrait énormément de temps...

Merci de votre aide!
 

Pièces jointes

  • Classeur1.xls
    15.5 KB · Affichages: 88
  • Classeur1.xls
    15.5 KB · Affichages: 89
  • Classeur1.xls
    15.5 KB · Affichages: 89

GPLIONEL

XLDnaute Occasionnel
Re : Supprimer Des Doublons

Bonjour JeEbZzZz,

Dans un premier temps tu tries les noms par ordre alphabétique
Dans la cellule H2 : =si(b2=b1;"doublon";"ok")
tu recopies cette formule vers le bas
tu vas dans outil filtre filtre automatique
tu sélectionnes "doublon"
tu les supprimes
tu annules le filtre
tu sélectionnes tous ton tableau et tu le tries de nouveau
 

CBernardT

XLDnaute Barbatruc
Re : Supprimer Des Doublons

Bonjour JeEbZzZz, GPLIONEL et le forum,

Essayes la macro suivante. Le nom de la feuille doit être adapté.

Sub FiltrerTrierA()
Dim Tablo, i As Integer, j As Integer, k As Byte, Plage As Range

Application.ScreenUpdating = False
With Sheets("Feuil1")
Set Plage = .Range("A2:G" & .Range("A65536").End(xlUp).Row)
' Définition du tableau
Tablo = Plage
'Elimination des lignes en doublons
For i = 1 To UBound(Tablo) - 1
If Tablo(i, 3) <> "" Then
For j = i + 1 To UBound(Tablo)
If Tablo(j, 3) <> "" And Tablo(j, 3) = Tablo(i, 3) Then
For k = 1 To 7
Tablo(j, k) = ""
Next k
End If
Next j
End If
Next i
Plage = Tablo
Plage.Sort Key1:=Range("B2"), Order1:=xlAscending
End With
End Sub

Cordialement

Bernard
 
Dernière édition:

Hervé

XLDnaute Barbatruc
Re : Supprimer Des Doublons

bonjour

un code à essayer (je considere la ligne entiere pour détecter les doublons) :

Code:
Sub Bouton1_QuandClic()
Dim col As Byte
Dim i As Long
Dim j As Byte
Dim plage As Range
Dim ligne As Integer

Application.ScreenUpdating = False

ligne = Range("a65536").End(xlUp).Row
col = Range("iv1").End(xlToLeft).Column + 1

For i = 2 To ligne
    For j = 1 To col - 1
        Cells(i, col) = Cells(i, col) & Cells(i, j)
    Next j
Next i

Set plage = Range(Cells(2, col), Cells(ligne, col))

For i = ligne To 2 Step -1
    If Application.CountIf(plage, Cells(i, col)) > 1 Then
        Rows(i).Delete
    End If
Next i

Columns(col).Delete
Application.ScreenUpdating = True
    
End Sub

salut
 

Hervé

XLDnaute Barbatruc
Re : Supprimer Des Doublons

re

juste sur le nom :

Code:
Sub Bouton2_QuandClic()
Dim plage As Range
Dim i As Integer

Set plage = Range("b2:b" & Range("b65536").End(xlUp).Row)

For i = Range("b65536").End(xlUp).Row To 2 Step -1
    If Application.CountIf(plage, Cells(i, 2)) > 1 Then
        Rows(i).Delete
    End If
Next i

End Sub

salut
 

kiki29

XLDnaute Barbatruc
Re : Supprimer Des Doublons

une autre via une collection
en fait sur prénom nom il faudrait au préalable supprimer les espaces surnuméraires dans la chaine, les espaces insécables et les espaces de debut et fin etc
 

Pièces jointes

  • Classeur1_mod.zip
    9.7 KB · Affichages: 36
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : Supprimer Des Doublons

bonjour a tous

ma version:

Code:
Option Explicit
Sub test()
Dim n As Integer
Dim nodoublons As Collection
Set nodoublons = New Collection
Dim doublons As Collection
Set doublons = New Collection
For n = 2 To Range("B65536").End(xlUp).Row
On Error Resume Next
nodoublons.Add Range("B" & n), CStr(Range("B" & n))
 If Err.Number <> 0 Then doublons.Add n
On Error GoTo 0
Next n
For n = doublons.Count To 1 Step -1
  Rows(doublons(n)).Delete
Next n
End Sub
 

kiki29

XLDnaute Barbatruc
Re : Supprimer Des Doublons

dans Classeur1_Mod : Modifier la clef Prénom Nom par nouvelle clef Prénom Nom Adresse
remplacer Coll.Add Cell, CStr(Cell)
par Coll.Add Cell, CStr(Cell) & CStr(Cell.Offset(0, 3))
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 504
Messages
2 089 073
Membres
104 019
dernier inscrit
pascal la