Pregunta:

La selección de una lista de validez en la columna D se sustituirá por un número. Funciona solo con XL9 y superior.

Respuesta:

Coloque el código siguiente en el módulo Este libro.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column <> 4 Then Exit Sub

Application.EnableEvents = False

Target.Value = WorksheetFunction.VLookup(Target.Value, Range("A1:B12"), 2, 0)

Application.EnableEvents = True

End Sub