Supprimer une ligne si doublon dans un champ
Résolu
siamens_duj
-
Frenchie83 Messages postés 2254 Statut Membre -
Frenchie83 Messages postés 2254 Statut Membre -
Bonjour,
J'ai un tableau avec pas mal de données et tout les jours j'importe d'autres données.
J'aimerais que, quand il y a un doublon, mon code efface toute la ligne où il y a le champ qui comporte le doublon.
Actuellement mon code efface juste la cellule où il y a le doublon.
J'ai également essayé de mettre :
Mais cela efface toutes les données qu'il y a dans le tableau.
Quelqu'un saurez comment effacer la ligne où la cellule comporte un doublon.
J'ai un tableau avec pas mal de données et tout les jours j'importe d'autres données.
J'aimerais que, quand il y a un doublon, mon code efface toute la ligne où il y a le champ qui comporte le doublon.
Actuellement mon code efface juste la cellule où il y a le doublon.
Sub SupDoublonsColonne()
Set d = CreateObject("Scripting.Dictionary")
Set début = Cells(5, 4) 'C'est dans la colonne D qu'on recherche un doublon
a = Range(début, début.End(xlDown))
For Each c In a
d(c) = ""
Next c
Range(début, début.End(xlDown)).ClearContents début.Resize(d.Count, 1) = Application.Transpose(d.keys)
End Sub
J'ai également essayé de mettre :
Range(début, début.End(xlDown)).ClearContents.EntireRow
Mais cela efface toutes les données qu'il y a dans le tableau.
Quelqu'un saurez comment effacer la ligne où la cellule comporte un doublon.
1 réponse
-
Bonjour
Ceci efface la ligne en doublon (mais ne la supprime pas)Sub SupDoublonsColonne() Set D = CreateObject("Scripting.Dictionary") Set début = Cells(5, 4) For Each c In Range(début, début.End(xlDown)) If Not D.exists(c.Text) Then D(c.Text) = "" Else Range(Cells(c.Row, 1), Cells(c.Row, 16000)).EntireRow.ClearContents Next c End Sub
Cdlt-
-
Ce que vous avez demandez, c'est l'effacement de la ligne en doublon, vous aurez donc une ligne vidée de son contenu, mais la ligne est toujours là.
La suppression, comme son nom l'indique supprime la ligne en doublon, ce qui fait remonter les lignes situées en dessous. ainsi, vous n'aurez pas de lignes vides . -
-