Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim R As Range 'déclare la variable R (Recherche)
Dim POT As String 'déclare la variable POT (Première Occurrence Trouvée)
Dim LAF As Range 'déclare la variable LAF (Lignes À Effacer)
Set O = Worksheets("Feuil1") 'définit l'onglet O
Set R = O.Columns(5).Find("Doublon", O.Range("E1"), xlValues, xlWhole) 'définit la recherche R (recherche le mot "Doublon" entier dans la colonne E en partant de E1
If Not R Is Nothing Then 'condition : s'il existe au moins une occurrence trouvée
POT = R.Address 'définit l'adresse de la première occurrence trouvée POT
Do 'exécute
'définit la plage LAF (la ligne au dessus de la pemière occurrence trouvée ou l'union de LAF et de la ligne au dessus pour les occurrences suivante
If LAF Is Nothing Then Set LAF = O.Rows(R.Row - 1) Else Set LAF = Application.Union(LAF, O.Rows(R.Row - 1))
Set R = O.Columns(5).FindNext(R) 'définit la recherche R (occurrence suivante)
Loop While Not R Is Nothing And R.Address <> POT 'boucle tant qu'il existe de nouvelle occurrence ailleurs qu'en POT
End If 'fin de la condition
LAF.Delete 'efface la plage LAF
End Sub