Unfortunately Data Validation does not work if the value is inserted with VBA code. The validation only works if the User inserts the required value in the interactive mode on the worksheet.
Also if you copy a value and paste the value into the Data Validation cell then the validation does not work.
Plus if a cell is copied and pasted (ie. standard paste) then the Data Validation is actually over written and gone altogether.
You will need to include some VBA code in an If statement to perform the validation immediately prior to the code that inserts the value. Since you are using VBA code for the process then I assume you will know how to insert the If statement to validate. However, if you need more assistance with this then please post the section of code that writes the value to the worksheet and I will assist further.