Public Sub SupprAlarme()
Dim ol As Worksheet 'déclare la variable ol (Onglet Liste)
Dim oa As Worksheet 'déclare la variable oa (Onglet Alarme)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim r As Range 'déclare la variable r (Recherche)
Dim pa As String 'déclare la variable pa (Première Adresse)
Dim tbl() As Long 'déclare le tableau de variables indexées tbl (TaBLeau)
Dim x As Long 'déclare la variable x (incrément)
Set ol = Sheets("liste") 'définit l'onglet liste
Set oa = Sheets("alarme") 'définit l'onglet alarme
Set pl = oa.Range("A1:A" & oa.Cells(Application.Rows.Count, 1).End(xlUp).Row) 'définit la plage pl
For Each cel In pl 'boucle 1 : sur toutes les cellules éditées cel de la plage pl
Erase tbl 'vide le tableau tbl
x = 0 'initialise la variable x
Set r = ol.Columns(1).Find(cel.Value, , xlValues, xlWhole) 'définit la recherche r
If Not r Is Nothing Then 'condition : si il existe au moins un occurrence dans trouvée dans la colonne 1 de l'onglet "liste"
pa = r.Address 'définit la première adresse
Do 'exécute
ReDim Preserve tbl(x) 'redimentionne le tableau tbl
tbl(x) = r.Row 'attribue une variable indexée au tableau tbl (la ligne de l'occurrence trouvée)
x = x + 1 'incrément x
Set r = ol.Columns(1).FindNext(r) 'redéfinit la recherche r (recherche suivant)
Loop While Not r Is Nothing And r.Address <> pa 'boucle tant qu'il existe des occurrences ailleurs qu'en pa
For x = UBound(tbl, 1) To LBound(tbl, 1) Step -1 'boucle 2 : inversée sur toutes les variables du tableau tbl
Rows(tbl(x)).Delete 'suprime la ligne de la variable
Next x 'prochaine variable de la boucle 2
End If 'fin de la condition
Next cel 'prochaine cellule cel de la boucle 1
End Sub