En effet celà fonctionne si les cellules sont réparties toutes les 3 lignes comme dans ma question mais si les cellules sont discontigues et non réparties toutes les 3 lignes ?
Je pensais en novice à un code du type : If Target.Address <> "$D$5","$D$7","$D$11" etc. sachant qu'il y a une vingtaine de cellules à prendre en compte dans la même colonne
Dim tablo As Variant, i As Long, Ok as Boolean
tablo = Array("$D$5","$D$7","$D$11", .......)
Ok = true
For i = LBound(tablo) To UBound(tablo)
If target.adress <> tablo(i) then
Ok= false
exit for
end if
Next i
If ok = false then exit sub