Bonjour Lasaad, boujour le forum,
À près plusieurs essais je te propose cette macro assez rapide :
Sub Macro1()
Dim cel As Range 'déclare la variable cel
Dim dec As Long 'déclare la variable dec
Range("B2").Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'boucle 1 :sur toutes les cellules éditées de la colonne B
dec = 1
For Each cel In Range("B2:B" & Range("B65536").End(xlUp).Row)
'Condition : vérifie la cellule avec la cellule en D décallée de dec lignes au dessus
If cel = cel.Offset(-dec, 2) Then
dec = dec + 1
GoTo suite 'va à la balise "suite" (sans copier la cellules des colonnes A et B)
End If 'fin condition
'copie les cellules des colonnes A et B
Range("D65536").End(xlUp).Offset(1, 0) = cel
Range("E65536").End(xlUp).Offset(1, 0) = cel.Offset(0, -1)
suite: 'balise
Next cel 'prochaine cellule de la boucle 1
End Sub
À plus,
Robert