Cheers for the ideas guys, most helpful!
Just in case others may look at this post here's another way to do it.
My preferred route to have done this would have been by declaring a range value as the list's source, but as this range was on a different sheet I wasn't able to do it.
I subsequently found out that if you name the range on the sheet, then you can reference this directly in the VBA.
The code now looks a little like this (Please bear in mind I need to create multiple lists and their dynamic in so much as based on which sheet is selected. MailPack is the range and 4 relates to column 'D' as this is where I want it.)
Sheet that calls the drop down function...
Code:
Call cdDropDowns.cdAddDropDown("MailPack", Target.Row, 4)
Module that handles the list...
Code:
Sub cdAddDropDown(strWhat As String, intRow As Integer, intColumn As Integer)
Cells(intRow, intColumn).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=" & strWhat
End With
End Sub
Hope this could be of future use to others.
Hope this may help.