Sub CellsVides(Cible As Range)
Dim LO As ListObject
Dim Plage As Range
Dim C As Range
Dim i&
Dim k&
Dim COLS As Variant
'--- Les colonnes où il faut agir ---
COLS = Array(6, 10, 14, 16)
'--- Identifcation du ListObject (Tableau) ---
On Error GoTo Erreur
Set LO = ActiveSheet.ListObjects(1)
On Error GoTo 0
'--- La plage du ListObject ---
Set Plage = LO.Range
'--- On sort si la cellule qui a changé n'appartient pas à la plage du ListObject ---
If Application.Intersect(Cible, Plage) Is Nothing Then Exit Sub
'--- Efface toute couleur du ListObject ---
Plage.Interior.Pattern = xlNone
'--- Colorise les cellules vides concernées ---
For k& = LBound(COLS) To UBound(COLS)
For i& = Plage.Row To Plage.Rows.Count + Plage.Row - 1
Set C = ActiveSheet.Cells(i&, Plage.Column + COLS(k&) - 1)
If C = "" Then C.Interior.Color = vbCyan
Next i&
Next k&
Exit Sub
'---
Erreur:
End Sub