No problem though from your prior posts I always assumed you had a complete aversion to VBA given the insistence on formulae resolution (even in the face of inefficiency).
If using VBA it would probably make sense to apply it to a Change event against A2:Ax given alterations on those cells should in turn affect the validation list itself... however ignoring that for the being...
-- using [C8] is generally slower than using Range("C8")
-- per your pseudo-code Test should read CL
-- if as assumed above A2:Ax are constants you can further limit the iteration by using SpecialCells - ie ignore blanks in the first instance
Dim CL As Range, LST As String
On Error Resume Next
For Each CL In Range(Cells(2,"A"),Cells(Rows.Count,"A")).End(xlup).SpecialCells(xlCellTypeConstants).Cells
LST = LST & "," & CL.Value
Next CL
With Range("C8").Validation
.Delete
.Add Type:=xlValidateList, AlterStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Replace(LST,1,1,"")
End With
Bookmarks