Sub Macro1()
Dim coul As XlColorIndex 'déclare la variable coul
Dim ld As Integer 'déclare la variable ld (Ligne du Début)
Dim nl As Integer 'déclare la variable nl (Nombre de Lignes)
Dim lf As Integer 'déclare la variable lf (Ligne de Fin)
Dim li As Range 'déclare la variable li (LIgne)
Dim i As Integer 'déclare la variable i (Incrément)
Dim cel As Range 'déclare la varialbe cel (CELLule)
coul = ActiveCell.Interior.ColorIndex 'définit la couleur coul
ld = ActiveSheet.UsedRange.Cells(1).Row 'définit la ligne du début ld
nl = ActiveSheet.UsedRange.Rows.Count 'définit le nombre de ligne nl
lf = nl + (ld - 1) 'définit la ligne de fin lf
'si "non" au message, sort de la procédure
If MsgBox("Attention ! Vous allez supprimer toutes les cellules de la même couleur que la cellule active !" & Chr(13) _
& "Voulez-vous continuer ?", vbYesNo) = vbNo Then Exit Sub
For i = lf To ld Step -1 'boucle 1 : inversée, de la ligne de fin lf à la ligne de début ld
For Each cel In Application.Intersect(ActiveSheet.UsedRange, Rows(i)) 'boucle 2 : sur toutes les cellules à l'intersection de la ligne et de la plage éditée
If cel.Interior.ColorIndex = coul Then cel.Delete shift:=xlShiftUp 'si la couleur de fond est la même que coul, supprime la cellule avec décalage vers le haut
Next cel 'prochaine cellule de la boucle 2
Next i 'prochaine ligne de la boucle 1
End Sub