If Not Target.Address Like "$D$*" Or Target.Row Mod 3 <> 0 Then Exit Sub
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
Dim Plage As Range
Set Plage = Range("D3, D6, D9, D12,.....")
If Intersect(Plage, Target) Is Nothing Then ....