A única maneira que vejo é remover a validação de dados e codificar sua própria caixa suspensa.
A vantagem disso é que a lista suspensa ocultará a célula real, de modo que a própria célula ainda possa ser editada como normal.
Este código (de aqui ) adicionará uma lista suspensa, e quando um item for selecionado, coloque esse valor na célula, altere outra célula com base no item selecionado e, em seguida, remova a si mesmo para que não haja nenhuma lista suspensa. Você deve poder usar este código para sua própria diversão.
Código reproduzido aqui, caso o link seja interrompido:
Option Explicit
Sub Test()
AddDropDown Range("D4")
End Sub
Sub AddDropDown(Target As Range)
Dim ddBox As DropDown
Dim vaProducts As Variant
Dim i As Integer
vaProducts = Array("Water", "Oil", "Chemicals", "Gas")
Set ddBox = Sheet1.DropDowns.Add(Target.Left, Target.Top, Target.Width, Target.Height)
With ddBox
.OnAction = "EnterProductInfo" ' name corrected
For i = LBound(vaProducts) To UBound(vaProducts)
.AddItem vaProducts(i)
Next i
End With
End Sub
Private Sub EnterProductInfo()
Dim vaPrices As Variant
vaPrices = Array(15, 12.5, 20, 18)
With Sheet1.DropDowns(Application.Caller)
.TopLeftCell.Value = .List(.ListIndex)
.TopLeftCell.Offset(0, 2).Value = vaPrices(.ListIndex - Array(0, 1)(1))
.Delete
End With
End Sub