Sub Set_Validation()
L = Application.Max(4, Cells(Rows.Count, "A").End(xlUp).Row)
Range("B4:D" & L).ClearContents
Range("B4:D" & L).Validation.Delete
With Range("B4").Validation
.Add xlValidateCustom, xlValidAlertStop, xlBetween, _
"=AND(SUM($B4:$D4)<=$B$2,OR(B4="""",ISNUMBER(B4)),MOD(B4,0.5)=0)"
.IgnoreBlank = True: .InCellDropdown = True
.InputTitle = "": .InputMessage = "": .ShowInput = True
.ErrorTitle = "": .ErrorMessage = "": .ShowError = True
End With
Range("B4").AutoFill Range("B4:B" & L), xlFillValues
Range("B4:B" & L).AutoFill Range("B4:D" & L), xlFillValues
Range("E4:G" & L).ClearContents
Range("E4:G" & L).Validation.Delete
With Range("E4").Validation
.Add xlValidateCustom, xlValidAlertStop, xlBetween, _
"=AND(SUM($E4:$G4)<=$E$2,OR(E4="""",ISNUMBER(E4)),MOD(E4,0.5)=0)"
.IgnoreBlank = True: .InCellDropdown = True
.InputTitle = "": .InputMessage = "": .ShowInput = True
.ErrorTitle = "": .ErrorMessage = "": .ShowError = True
End With
Range("E4").AutoFill Range("E4:E" & L), xlFillValues
Range("E4:E" & L).AutoFill Range("E4:G" & L), xlFillValues
End Sub