If you are going to perform complex and multiple validation, you should try the second approach.Also this approach allows the user more flexibility.
On the other hand, if the user is required to enter data in all the rows and the validation is simple; the first approach is convenient.
I could use the Cell Leave, and I think that's what I have done in the past, I just thought it would be cleaner if I was able to do it from the Validating event.
To String Your requirements: I could easily do this using Cell Value Changed but I don't want the user to be able to leave the cell if the zip Code is not don't you just have a Cell Leave and have a flow like:if column = Zip Code 'validate zip if valid 'exit sub else 'set focus to current cell end ifend_ifthen do all you other processing in the Validating -Sometimes the answer to your question is the hack that works I tried your code and it works fine but it changes the value of the textbox but it doesn't change the value of the cell.
-Sometimes the answer to your question is the hack that works Thanks for the suggestion,sender.
Get Type returns "Data Grid View" so I tried: Msg Box(CType(sender, Data Grid View).
I could easily do this using Cell Value Changed but I don't want the user to be able to leave the cell if the zip Code is not valid. Thanks Perrin you may have to reference it through the sender obj that is passed.