No.
Normally, one would set the format manually.
If you want to set it for the user and you are using the Sheet Selection event, I would recommend adding an Intersect() so that it fires for just a set range. You can then just set NumberFormat() once.
Otherwise, if you really want to force it in the Userform code, you will have to modify it in each day button's Click event. That code could be made more efficient though. In any case, to do that the kludgy way, then here is the first one:
Private Sub D1_Click()
ActiveCell.Value = D2.ControlTipText
ActiveCell.NumberFormat = "dd-mmm-yy"
Unload Me
End Sub