Isso parece perigoso, mas não consigo ver nenhum problema com isso. Basicamente, se você alterar alguma coisa no Foobar, ele procurará todas as células da planilha que tiverem validação de dados. Se o DV aponta para Foobar e o valor não está na lista, então deve ter sido o valor que foi alterado. Funcionou com meus testes limitados. Deixe-me saber se você vê alguma falha.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rCell As Range
Dim rFound As Range
'Only run this when a cell in Foobar is changed
If Not Intersect(Target, Me.Range("Foobar")) Is Nothing Then
'Go through every data validation cell in the sheet
For Each rCell In Me.Cells.SpecialCells(xlCellTypeAllValidation).Cells
'if the DV in the cell points to foobar
If rCell.Validation.Formula1 = "=Foobar" Then
'See if the cell's value is in the Foobar list
Set rFound = Me.Range("Foobar").Find(rCell.Value, , xlValues, xlWhole)
'If it's not in the list, it must be the one that
'changed, so changed it
If rFound Is Nothing Then
Application.EnableEvents = False
rCell.Value = Target.Value
Application.EnableEvents = True
End If
End If
Next rCell
End If
End Sub
Observe que isso ocorre no módulo da planilha, não em um módulo padrão. Como sempre, teste o código em uma cópia de sua pasta de trabalho.