Le désavantage de cette façon de faire est que tu dois énumérer dans le Array chacune des cellules sur lesquelles tu veux faire le test.
Sub quoi()
Dim C As Range, n As Byte, Msg As String
For Each C In Range("D2,C4,C6,H6")
If C = "" Then n = n + 1: Msg = Msg & C.Address & Chr(10)
Next
MsgBox Msg & IIf(n = 1, " est vide !", " sont vides"), vbCritical, "Oups"
End Sub