I would recommend you use the spelled out month, maybe break it out into sections to make it more visible:
dEndDate = DateAdd("m", 2, dStartDate)
dEndDate = DateValue(format(dEndDate,"mmm") & "-1-"&format(dEndDate,"yyyy"))
dEndDate = DateAdd("d",-1,dEndDate)
Spelling it out gets it to a more generic, non-region-specific format.
Or, use the EOMonth function
dEndDate = worksheetfunction.EOMonth(dStartDate,2)
Which will return the end of the month, two months from now.