Supprimer une ligne si doublon dans un champ

Résolu
siamens_duj -  
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.

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

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    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
    0
    1. siamens_duj
       
      Bonjour et merci pour votre réponse.

      Comment ça efface mais ne supprime pas ?

      Je ne comprends pas vraiment la différence.

      Merci
      0
    2. Frenchie83 Messages postés 2254 Statut Membre 339
       
      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 .
      0
      1. Mayot35 Messages postés 631 Statut Membre 60 > Frenchie83 Messages postés 2254 Statut Membre
         
        Je suis intéressé par cette manipulation, pour supprimer complètement la ligne comment faut-il faire ?
        0
      2. Frenchie83 Messages postés 2254 Statut Membre 339 > Mayot35 Messages postés 631 Statut Membre
         
        Bonjour
        Faites la même chose, et finissez par un filtrage des cellules "non vides"
        Cdlt
        0
    3. siamens_duj
       
      ah d'accord merci beaucoup pour l'information et pour votre aide
      0