Suppression ligne si doublon

Bonjour a tous,

je souhaiterai une macro, qui puisse supprimer une ligne entière, si la colonne A contient un doublon , et je garde celle qui contient le mot shipped en colonne B.

Merci de votre aide

Exemple joint

13exemple.xlsm (8.83 Ko)

Bonsoir à tous,

La description de votre besoin me semble incomplète. Que doit-on faire, en présence de doublons mais sans le mot "shipped" en colonne B ?

En colonne B, il ne peut y avoir que 2 états, Shipped ou to_be_prepared.

Que doit-on faire, en présence de doublons mais sans le mot "shipped" en colonne B ? on supprime la ligne

Bonsoir de nouveau,

Je vous livre une proposition via Power Query (Complément à télécharger pour Excel 2013 - Nativement intégré à Excel pour les versions postérieures) :

Bonjour,
Un exemple VBA.
Cdlt.

13exemple.xlsm (16.29 Ko)
Public Sub DeleteDuplicates()
Dim ws As Worksheet
Dim lastCol As Long, lastRow As Long, lRow As Long
Dim n As Double
Dim rngData As Range, rngToDelete As Range
Const T As String = "to_be_prepared"
    Application.ScreenUpdating = False
    Set ws = Worksheets(1)
    With ws
        lastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        Set rngData = .Cells(2, 1).Resize(lastRow - 1)
        For lRow = lastRow To 2 Step -1
            n = WorksheetFunction.CountIf(rngData, .Cells(lRow, 1).Value)
            If n > 1 And .Cells(lRow, 2).Value = T Then
                If rngToDelete Is Nothing Then
                    Set rngToDelete = .Cells(lRow, 1)
                Else
                    Set rngToDelete = Union(rngToDelete, .Cells(lRow, 1))
                End If
            End If
        Next lRow
    End With
    If Not rngToDelete Is Nothing Then rngToDelete.Resize(, lastCol).Delete
End Sub

Merci a vous 2 , j'ai opté pour l'option de Jean Eric, plus facile a adapter en VBA pour Moi

Cepedant , je rencontre un souci, quand je copie mes données dans le fichier exemple et que je lance la macro ca fonctionne au top.

Par contre quand je recupere la macro et que je l'exécute dans mon fichier j'ai une erreur ici

If Not rngToDelete Is Nothing Then rngToDelete.Resize(, lastCol).Delete

La partie en gras rngToDelete.Resize(, lastCol).Delete est surligné en jaune

une idée ? (pourtant meme donnée, meme nombre de colonne, meme entête)



Re,
Un petit fichier ?
Cdlt.

Un fichier avec 10 000 Lignes et 50 colonnes ...

C'est aléatoire en fait, je viens de voir que de temps en temps ca s'exécute bien et d'autres fois j'ai le message d'erreur

Difficile de poster ici , il y a des infos de clients ... je peux l'envoyer en Mp...

Rechercher des sujets similaires à "suppression ligne doublon"