Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (Plage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim ps As Range 'déclare la variable ps (Plage de Sélection)
With Sheets("Feuil1") 'prend en compte l'onglet "" Feuil1"
dl = .Cells(Application.Rows.Count, 30).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne AD
Set pl = Range("AD3:AD" & dl) 'définit la plage pl
Set ps = .Range("AD2") 'définit la plage ps (pour avoir au moins une plage de départ)
End With 'fin de la prise en compte de l'onglet "Feuil1"
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
'condition : si le nombre de valeurs dans la cellule cel plus les 3 cellules à coté est égal à 4
If Application.WorksheetFunction.CountA(cel.Resize(, 4)) = 4 Then
'redéfinit la plage ps (la ligne de cel si ps ne contient qu'une seule cellule, sinon ajoute la ligne de cel à ps)
Set ps = IIf(ps.Cells.Count = 1, cel.Resize(, 4), Application.Union(ps, cel.Resize(, 4)))
End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
ps.Select 'sélectionne la plage ps
End Sub