Valentina,
Generally the BeforeExitEditMode event is the best place to perform this logic since you can prevent the user from moving to another cell until a valid value is entered. This isn't firing after a DropDown is closed because at this point the cell would still be in edit mode; you could use the AfterCellListCloseUp if you need to immediately perform logic here.
As for setting a new value on a cell, it would make sense that you can't assign a value in the BeforeCellUpdate since this would cause a recursive situation. You could likely update the value in the BeforeExitEditMode event as well.
-Matt