Try this version:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Count > 1) Or (Target.Address(0, 0) <> "C10") Then Exit Sub
ActiveSheet.Unprotect Password:="password"
Range("D10").Locked = (Range("C10") <> "Other")
ActiveSheet.Protect Password:="password"
End Sub
Louis, I don't think the part in red is doing what you think:
Code:
If Target.Count > 1 Or [COLOR=#ff0000]Target <> Range("C10")[/COLOR] Then Exit Sub
That is not checking for the location or address of the Target cell being updating. What that is really asking is if the VALUE in the Target cell is NOT equal to the VALUE of Range("C10"). So, if some other cell is being updated (like say Z1), and the value in Z1 does not equal the value in cell C10, it is going to cause the succeeding lines of code to needlessly run/be evaluated.