Wenn du dich ein klein wenig mit VBA auskennst, probiere folgende Routine. Kopiere den Code in das Klassenmodul "DieseArbeitsmappe" deiner Datei und teste, ob es deinen Vorstellungen nahe kommt. Er wirkt sich auf alle Blätter aus, wenn eine Änderung in einer Zelle erfolgt. Einige Einschränkungen sind kommentiert, Fehlerbehandlungen nicht implementiert.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
Const ksTitel = "Gleicher Wert in anderer Zelle?"
Dim oBlatt As Worksheet
Dim oUsed As Range
Dim V1 As Variant, V2 As Variant
Dim X As Integer, Y As Integer
Dim lRet As Long
' Mehrfach-Änderungen (z.B. durch D&D) unterdrücken:
If Target.Cells.Count > 1 Then Exit Sub
Set oBlatt = ActiveSheet
' nur das aktuelle Blatt wird untersucht:
Set oUsed = oBlatt.UsedRange
V1 = Target.Value
' leeres unterdrücken:
If Len(Trim(V1)) = 0 Then Exit Sub
For Y = 1 To oUsed.Columns.Count
For X = 1 To oUsed.Rows.Count
If Not (X = Target.Row And Y = Target.Column) Then
V2 = oUsed.Cells(X, Y).Value
' es wird nur exakte Übereinstimmung ausgewertet, _
event. mehrere Vorkommen bleiben unberücksichtigt
If V2 = V1 Then GoTo mSchonDa
End If
Next X
Next Y
Exit Sub
mSchonDa:
lRet = MsgBox("Der Wert " & vbCr & vbTab & V1 & vbCr _
& "ist bereits in Zelle " & oUsed.Cells(X, Y).Address & "enthalten!" _
& vbCr & vbCr & "Beide markieren?", _
vbYesNo, ksTitel)
If lRet = vbYes Then Union(oUsed.Cells(X, Y), Target).Select
End Sub