Bonjour
Le Code commenté
Sub Efface_Doublons()
'Insere une colonne avant la colonne E
Columns("E:E").Select
Selection.Insert Shift:=xlToRight
' Selectionne une plage de D2 à la derniére ligne remplie de la colonne D
' et décale cette selection d'une colonne vers la droite (de D, on passe à E)
Range("D2").Select
Range(Selection, Selection.End(xlDown)).Offset(, 1).Select
' rempli cette selection avec la formule en E2 incrémentée;=SI(NB.SI($A$1:A2;A2)>1;1;"")
Selection.FormulaR1C1 = "=IF(COUNTIF(R1C1:RC[-4],RC[-4])>1,1,"""")"
'Declaration des variables
Dim MaCellule As Object, i As Integer
'Parcours la plage sélectionnée
For Each MaCellule In Selection
' Définition de la variable i (No de ligne)
i = MaCellule.Row
'Si la cellule est ègale à 1
If MaCellule = 1 Then
'Sélectionne sur la ligne correspondante les cellules en colonne A et A décalé d'une colonne (soit A:B)
' et efface les données de ces 2 cellules
Range("A" & i, Range("A" & i).Offset(0, 1)).ClearContents
End If
'Passe à la cellule suivante et recommence
Next MaCellule
'Selectionne la colonne E
Columns("E:E").Select
' Supprime cette colonne selectionnée
Selection.Delete Shift:=xlToLeft
Range("A1").Select
End Sub
Cordialement