Suppression ligne en doublon

Bonsoir a tous et merci pour votre aide

je souhaiterai supprimer par VBA les lignes en doublon dans la colonne A de mon fichier joint.

j'ai mis en sheet 2 le resultat que je souhaiterai.

merci beaucoup pour votre aide

Bonsoir nicroq,

Une solution très rapide en utilisant un dictionnaire (Dictionary). Mais pas de formatage des cellules...

Sub suppDoublons()
    Dim tblSource, tblCible()
    Dim ongletSource As String, ongletCible As String
    Dim dicoNom As Object
    Dim i As Long, j As Long, cpt As Long

    ongletSource = "Feuil1"
    ongletCible = "Feuil2"
    tblSource = Sheets(ongletSource).Range("A12").CurrentRegion.Value2

    'on crée un tableau cible de même dimension (même s'il contiendra probablement moins de données)
    ReDim tblCible(LBound(tblSource) To UBound(tblSource), LBound(tblSource, 2) To UBound(tblSource, 2))

    'on va créer un dictionnaire pour stocker la liste de noms sans doublons
    Set dicoNom = CreateObject("scripting.dictionary")

    For i = LBound(tblSource) To UBound(tblSource)
        'si le nom parcouru n'existe pas encore dans le dico, on stocke la ligne et on ajoute le nom au dico
        If Not dicoNom.exists(tblSource(i, 1)) Then
            dicoNom(tblSource(i, 1)) = ""    'ajoute le nom au dico
            cpt = cpt + 1
            For j = LBound(tblSource, 2) To UBound(tblSource, 2)
                tblCible(cpt, j) = tblSource(i, j)
            Next
        End If
    Next i

    'désactive la mise à jour de l'écran
    Application.ScreenUpdating = False

    With Sheets(ongletCible).Range("A12")
        .CurrentRegion.Clear    'RAZ de la zone cible

        'copie des valeurs sans doublons (seule la première est conservée)
        .Resize(cpt, UBound(tblSource, 2) - LBound(tblSource, 2) + 1).Value2 = tblCible
    End With

End Sub
Rechercher des sujets similaires à "suppression ligne doublon"