Bonsoir Mo, JB, le Forum
Tout d'abord
Bienvenu sur le
Pour supprimer des doublons dans une base de données par des instruction VBA, il y a plusieurs moyens... en voici un que j'utilise souvent.
JB a tout d'abord raison, il faut faire un tri de la plage, ou en tout cas, de la colonne concernée, admettons la colonne "A".
Ensuite c'est exacte qu'il faut détruire avec "EntireRow.Delete" toutes les lignes dont la valeur de la cellule A ("y") est identique à la valeur de la cellule A ("x")... Hélas la logique veut que si on a déterminé une plage, celle ci va se réduire pendant le déroulement de la macro... ce qui a pour effet de laisser des doublons dans la colonne...
Lien supprimé ...
Pour le code fourni par JB, qui est dans le ce principe en passant par des variables de type String ("nouveaumot" & "motprecedent") c'est toujours ce problème de décalage qui ce produit, le code fonctionne, mais il faudrait qu'il y ait qu'un seul doublon dans la base car sinon il y a ce problème de décalage...
Donc il faut un peu ruser avec VBA ... exemple, (toujours sur la colonne "A") :
Option Explicit
Sub KillDuplicate()
Dim L As Integer
Dim i As Integer
Dim Message As String
With Sheets("Feuil1")
.Columns("A").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess
For i = .Range("A65536").End(xlUp).Row + 1 To 2 Step -1
If .Range("a" & i) = .Range("a" & i - 1) Then
Message = Message & .Range("a" & i - 1).Value & vbCrLf
.Range("a" & i).ClearContents
End If
Next
On Error Resume Next
.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
If Message <> "" Then
MsgBox "Doublon Détecté et Détruit : " & vbCrLf & Message, vbCritical, "Thierry's Démo"
Else
MsgBox "Pas de Doublon détecté", vbInformation
End If
End With
End Sub
Si tu veux télécharger une de mes démos, basée sur ce principe, je te conseille le lien dans le Gif ci-dessous
Lien supprimé
...et si tu veux suivre le Fil de Discussion =>
DEMO UserForm ComboBox Gestion de Database (MAJ Doublon/Supression etc)
Dans le foulée, encore une autre démo pour travailler sur plusieurs colonnes et identifier les doublons sur la valeur de plusieurs cellules linéaires avec gestion de la casse :
Lien supprimé
Bonne Nuit et Bon Samedi
@+Thierry