जैसा कि मैंने टिप्पणियों में उल्लेख किया है, ऐसा करने का एकमात्र तरीका VBA के साथ होगा।
यहाँ एक विकल्प है। मैंने पूरे कोड में टिप्पणियां जोड़ी हैं। यह मानता है कि आप "सूची" नाम की सत्यापन सूची के लिए एक नामित सीमा का उपयोग कर रहे हैं और यह उसी शीट पर है जिस पर कोशिकाओं को मान्य किया गया है।
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Dim isect As Range
Dim vOldValue As Variant, vNewValue As Variant
Set isect = Application.Intersect(Target, ThisWorkbook.Names("List").RefersToRange)
If Not isect Is Nothing Then
' Get previous value of this cell
Application.EnableEvents = False
With Target
vNewValue = .Value
Application.Undo
vOldValue = .Value
.Value = vNewValue
End With
' For every cell with validation
For Each cell In Me.UsedRange.SpecialCells(xlCellTypeAllValidation)
With cell
' If it has list validation AND the validation formula matches AND the value is the old value
If .Validation.Type = 3 And .Validation.Formula1 = "=List" And .Value = vOldValue Then
' Change the cell value
cell.Value = vNewValue
End If
End With
Next cell
Application.EnableEvents = True
End If
End Sub
आप उदाहरण स्प्रेडशीट डाउनलोड कर सकते हैं जो मैंने इसे परीक्षण करने के लिए एक साथ रखा था। (मैक्रोज़ शामिल हैं!)